www.bankless.com
Open in
urlscan Pro
2606:4700:20::ac43:4afe
Public Scan
Submitted URL: https://bankless.ghost.io/r/8210d3fe?m=7849e17e-6358-456d-8a19-98052196e5ba
Effective URL: https://www.bankless.com/the-onchain-spectrum-nft?ref=bankless.ghost.io
Submission: On August 16 via manual from IN — Scanned from DE
Effective URL: https://www.bankless.com/the-onchain-spectrum-nft?ref=bankless.ghost.io
Submission: On August 16 via manual from IN — Scanned from DE
Form analysis
5 forms found in the DOMName: join —
<form name="join">
<input type="email" name="email" class="form-control" placeholder="Email address" style="margin-bottom:0;">
<input type="hidden" name="firstname">
<br>
<button type="submit" class="cta wow pulse animated" data-wow-delay="7s" style="visibility: visible; animation-delay: 7s; animation-name: pulse;"> Join for free </button>
<input type="hidden" name="conversionPostID" value="5248">
<input type="hidden" name="recaptchaResponse" class="recaptchaTokenInput" value="">
</form>
Name: footerSignUp —
<form name="footerSignUp">
<input type="email" name="email" class="form-control" placeholder="Email address">
<p class="termsVerbageGlobal">
<label>
<input type="checkbox" name="terms" value="1" style="margin-right:3px;"> By joining, I agree to the Bankless <a href="https://www.bankless.com/terms" target="_blank">Terms</a> and
<a href="https://www.bankless.com/privacy" target="_blank">Privacy</a> statements </label>
</p>
<button type="submit"> Join for free </button>
<input type="hidden" name="conversionPostID" value="5248">
<input type="hidden" name="recaptchaResponse" class="recaptchaTokenInput" value="">
</form>
Name: freeSignUpModal —
<form name="freeSignUpModal">
<input type="email" class="form-control" name="email" placeholder="Email address" style="margin-bottom:-10px;">
<input type="hidden" name="firstname">
<p class="terms" style="margin-top: 33px;
margin-bottom: 21px;">
<label>
<input type="checkbox" name="terms" value="1" style="position:relative;top:1px;margin-right:3px;"> By joining, I agree to the Bankless <a href="https://www.bankless.com/terms" target="_blank">Terms</a> and
<a href="https://www.bankless.com/privacy" target="_blank">Privacy</a> statements </label>
</p>
<button type="submit" class="submit"> Join for free </button>
<input type="hidden" name="conversionPostID" value="5248">
<input type="hidden" name="recaptchaResponse" class="recaptchaTokenInput" value="">
</form>
Name: signIn —
<form name="signIn">
<input type="email" class="form-control" name="email" placeholder="Email">
<input type="password" class="form-control passwordSignIn" name="password" placeholder="Password" style="display:none;">
<input type="hidden" name="reload" value="true">
<input type="hidden" name="useMagic" id="loginMagicValue" value="true">
<button type="submit" class="submit loginSubmitBtn"> Email sign in details </button>
<p class="terms">
<span class="usePasswordLink" style="display:none;">
<a href="javascript:;" onclick="usePasswordSignIn();" style="text-decoration:none !important;">
Use password instead
</a>
</span>
<span class="useEmailLink" onclick="useLinkSignIn();" style="display:none;">
<a href="javascript:;" style="text-decoration:none !important;">
Login with an email link
</a>
</span>
<span class="forgotPasswordLink" style="display:none;">
<a href="https://www.bankless.com/account/sign-in/reset">
Forgot password?
</a>
</span>
</p>
<input type="hidden" name="recaptchaResponse" class="recaptchaTokenInput" value="">
</form>
Name: signUpStandard —
<form name="signUpStandard">
<input type="email" class="form-control" name="email" placeholder="Email">
<p class="terms" style="margin-top: -10px;
margin-bottom: 21px;">
<label>
<input type="checkbox" name="terms" value="1" style="position:relative;top:1px;margin-right:3px;"> By joining, I agree to the Bankless <a href="https://www.bankless.com/terms" target="_blank">Terms</a> and
<a href="https://www.bankless.com/privacy" target="_blank">Privacy</a> statements </label>
</p>
<button type="submit" class="submit signUpSubmitBtn"> Email sign up details </button>
<input type="hidden" name="recaptchaResponse" class="recaptchaTokenInput" value="">
</form>
Text Content
Join for free * Home * Listen * Read * Tools Claimables Airdrop Hunter Token Hub Perks * Learn about citizenship * Sign In Dark mode Join for free Sign in * Dashboard * Media * Episodes * Articles * Guides * Tools Upgrade * Claimables * Airdrop Hunter New * Token Hub * Perks * Join for Free * Sign In F Results for "" * * * Article THE ONCHAIN SPECTRUM: NFT STORAGE ON ETHEREUM, BITCOIN, AND SOLANA Where are your NFTs stored? To answer that, you have to understand the onchain spectrum. William M. Peaster Aug 15, 2024 • 4 min read 3 0 Friend & Sponsor Mantle - Mass adoption of token-governed tech Quick navigation * Ethereum's NFT Spectrum * Bitcoin's NFT Spectrum * Solana's NFT Spectrum * More about NFT storage IPFS is a peer-to-peer network for sharing data. It's a popular choice for underpinning NFT metadata, and if used properly it offers strong redundancy and availability assurances. But what happens when it's used improperly? In the worst case scenario, the associated art becomes unavailable, and the NFTs become mere tokens. We've seen this before with platforms like Ascribe, Digital Objects, Editional, and even FTX. More recently, this week NFT sleuths discovered that nearly 30,000 NFTs from eBay's shuttered KnownOrigins marketplace—including iconic XCOPY works—rely on an outdated Infura link in their IPFS implementations, jeopardizing the availability of their art going forward. via X That said, there is no right or wrong storage approach per se—it's more about determining sufficiency on a case-by-case basis. Yet as an NFT adventurer yourself, it's incredibly important to understand the basics of storage so you can navigate the nuances here and make informed collecting decisions. Toward that end, let's walk through a quick refresher of the onchain spectrum as it stands today on Ethereum, Bitcoin, and Solana. Some of the subcategory names below are my own, and I may have missed some things, but this primer can be your cheatsheet to start from. -------------------------------------------------------------------------------- ETHEREUM'S NFT SPECTRUM via cryptopunks.app * Offchain — Beyond the token itself, the art and metadata live in an external solution like a private server or IPFS. Here IPFS is most preferable because with some work the data can be pinned indefinitely or copied extensively for redundancy. In contrast, private servers have proven to be a ticking time bomb when it comes to availability. * Subcategories: Semi-Offchain (Some metadata onchain, some offchain), Chain-to-Chain (Metadata stored on an external Layer 1, like Arweave) * Onchain State — The tokens and data live entirely within an Ethereum smart contract. It’s relatively expensive, but this approach allows for high durability guarantees, programmable expressiveness, runtime art (i.e. dynamic + fully onchain art like Terraforms), etc. * Subcategories: Hybrid Onchain (When an offchain collection is retroactively brought onchain in a separate smart contract), Hashed Onchain (Storing composite images with a hash in a smart contract, e.g. CryptoPunks), Layer 2 State (The tokens and data live in an L2 smart contract without external dependencies) * Onchain Calldata — This approach encodes media directly within Ethereum transaction calldata. The technique is notably inexpensive, but it lacks programmable expressiveness, and media stored like this might get pruned in Ethereum’s Purge phase. * Subcategories: Optional Calldata (e.g. 0xmons, where holders can choose calldata or full contract storage), L2 Calldata (Like on L1, this approach entails storing media in an L2’s transaction calldata) * Onchain Blobs — NFTs stored here exist in a new primitive, blobspace. This approach is really inexpensive, but it lacks expressiveness, and full storage is only for 18 days before archiving kicks in. * Witnessed Data — A hybrid offchain-onchain system a la Witness Protocol that hashes unrevealed data in checkpoints to Ethereum, Arbitrum, etc., e.g. a game that doesn’t need to immediately publish all its asset data onchain. BITCOIN'S NFT SPECTRUM via Right Click Save * Counterparty — The metaprotocol renowned for being home to the Rare Pepes, it uses OP_RETURN transactions to embed token data and other information into Bitcoin transactions. * Inscriptions — Introduced by the Ordinals protocol, inscriptions use the witness data section of Bitcoin transactions (expanded by the Taproot upgrade) to store media data. They offer strong permanence guarantees and low storage costs, but they lack the native expressiveness of smart contracts (though recursive inscriptions offer dynamism possibilities). * Stamps — An approach that involves making NFTs on Bitcoin by encoding metadata in multi-signature unspent transaction outputs (UTXOs). This method makes Stamps unpruneable and essentially permanent, though they’re more expensive to create than inscriptions. * Bitcoin L2s — Admittedly there isn’t much live here yet, but with OP_CAT on the horizon and projects like StarkWare eyeing Bitcoin scaling solutions, this should prove increasingly fertile ground for Bitcoin NFTs going forward. SOLANA'S NFT SPECTRUM via Mad Lads * Offchain — The “Metadata Account” segment of Solana's popular Progammable NFT (pNFT) standard has a URI section for supporting external storage via private server, IPFS, etc. Some Solana projects rely on Arweave instead, so the Chain-to-Chain approach is also seen here. * Onchain State — The tokens and data live entirely within Solana accounts; for instance, one technique here is storing images as SVG strings inside Solana addresses, making them readily retrievable. * Subcategories: Compressed NFTs (Also known as cNFTs, these NFTs make use of the Merkle Trees data structure to efficiently store condensed versions of NFT data onchain), ZK Compression (A new primitive introduced in June 2024 that allows state to be stored in compressed accounts) * Onchain Calldata — When assets are stored at the level of a Solana transaction, e.g. Solana Inscriptions. We’ve also seen hybrid approaches here, like using calldata storage in combination with external solutions like Arweave. -------------------------------------------------------------------------------- MORE ABOUT NFT STORAGE 👉 Comparing IPFS, Filecoin, and Arweave 3 0 Join for free Sign in Overview * Ethereum's NFT Spectrum * Bitcoin's NFT Spectrum * Solana's NFT Spectrum * More about NFT storage Friend & Sponsor Mantle - Mass adoption of token-governed tech LEVEL UP ON CRYPTO, DAILY Join the world’s most popular crypto community with daily alpha, news, & analysis, all free. Join for free Written by William M. Peaster 602 Articles • View all William M. Peaster, Senior Writer, has been with Bankless since January 2021. Immersed in Ethereum since 2017, he writes the Metaversal newsletter on the onchain frontier, covering everything from AI projects to crypto games, as the team’s lead NFT analyst. With a background in creative writing, he writes fiction and publishes art on Ethereum in his free time. He lives in Washington. CONTINUE YOUR JOURNEY News SEC Approves Leveraged MicroStrategy ETF MSTX seeks to deliver 175% of MSTR’s daily returns to investors by u... Today • 1 0 Analysis Bitcoin Gets Wrapped in Drama Justin Sun's role in a joint venture governing WBTC has Crypto Twitter... Today • 1 0 News Schumer Calls for Regulatory Action at Crypto4Harris Town Hall Senate Majority Leader Chuck Schumer was among the loudest Democrats c... Today • 1 0 No Responses Get connected Get the daily crypto brief By joining, I agree to the Bankless Terms and Privacy statements Join for free Not financial or tax advice. Bankless is not a bank, a credit union, or any other type of financial institution. No content on this website is financial, accounting, legal or tax advice. Bankless content is strictly educational and is not investment advice or a solicitation to buy or sell any assets or to make any financial decisions. This newsletter is not tax advice. Talk to your accountant. Do your own research. Disclosure. From time-to-time we may add links in this newsletter to this website to products we use. We may receive commission if you make a purchase through one of these links. Additionally, the Bankless team holds crypto assets. See our investment conflict of interest disclosures here. Bankless, LLC is doing business in California as Bonkless, LLC. This site is protected by reCAPTCHA. Go Bankless Become a Citizen About us Causes Merch Jobs Terms Privacy Advertise With Us Disclosures Tools Citizen Discord Airdrop Hunter Claimables Token Hub Perks Status Help & Support Bankless API Media Bankless Podcast Articles Guides Daily Crypto Brief Metaversal Changelog Not financial or tax advice. Bankless content is strictly educational and is not investment advice or a solicitation to buy or sell any assets or to make any financial decisions. This newsletter is not tax advice. Talk to your accountant. Do your own research. Disclosure. From time-to-time we may add links in this newsletter to products we use. We may receive commission if you make a purchase through one of these links. Additionally, the Bankless team hold crypto assets. See our investment disclosures here. This site is protected by reCAPTCHA. © 2024 Bankless, LLC Level up on crypto, daily Join the world's most popular crypto community with daily alpha, news & analysis, all free. By joining, I agree to the Bankless Terms and Privacy statements Join for free Sign up with Google Sign up with Discord Already a member? Sign in. Dismiss Sign in to Bankless Email sign in details Use password instead Login with an email link Forgot password? or Sign in with Google Sign in with Discord Connect Wallet New to Bankless? Join By continuing, you agree to the Bankless Terms and Privacy statements Sign up to Bankless By joining, I agree to the Bankless Terms and Privacy statements Email sign up details Sign up with Google Sign up with Discord Already have an account? Sign In By continuing to use Bankless.com, you accept the use of cookies and our Privacy Policy Accept Reject