Knowledge Base
  • 👨‍🎨For creators
    • 👋Intro to creating with Highlight
    • 📜Project quick start guides
      • Launch an open edition
      • Launch a delayed reveal collection
      • Launch a 1-of-1 auction
      • Launch a generative artwork
      • Launch an open edition generative artwork
      • Launch a PFP project
      • Launch a generative, image-based PFP project
      • Launch a ranked auction
      • Launch an onchain project
      • Launch a collector's choice project
      • Ongoing drops with the same contract
    • 🎇Learn the creation flows
      • ERC-721 vs. ERC-1155 Token Standards
      • Edition flow
      • Generative flow
      • Series flow
      • The importance of testing your collections
    • 👩‍💻Use embeds to build custom mint sites
      • Case Study: How Superchain Chiblings launched a fully custom website on Highlight x Base
      • Running a collector's choice mint via embeds
    • 💸Selling your NFTs
      • Available sale methods
        • Ranked auction
        • Dutch auction
        • English auction
      • Setting up gates (allowlists)
      • Combining sale methods
      • Configuring payment currencies
        • Accepting ERC20 payments
        • Accepting credit card payments
      • Payouts, royalties & splits
      • Livestream on the mint page
    • 🛠️Managing your collections
      • Hiding a collection
      • Mint creator reserves
      • Airdropping tokens
      • Updating collection metadata
      • Getting verified
      • Sponsored mints
      • Reducing collection size
    • 🔮Generative & onchain art tools
      • Highlight Studio
      • Onchain file system
      • Storing SVGs onchain
      • Downloading token metadata
      • How onchain is Highlight?
    • 🌐Integrations & ecosystem
      • Farcaster
      • Paragraph.xyz
      • Foundation Worlds
        • Importing a collection to Worlds
        • Foundation × Highlight FAQs
      • Export generative art from Cables.gl
      • Highlight on mobile
    • 🤓Advanced
      • Reusing contracts
      • Randomization algorithm
      • Upload asset specifications
      • Fulfilling auctions for non-transferable tokens
    • ✨About Highlight
      • Artwork policies
      • Highlight fees
  • For Collectors
    • 💳Buying
      • Buying on secondary
      • Exchange currency across chains
  • 💲Selling
    • Selling on secondary
    • Instantly sell & relist NFTs
  • 🔔Notifications
  • For developers
    • Intro to the Highlight Protocol
    • NFT contracts
      • Official addresses
      • ERC721GeneralSequence
      • ERC721General
      • ERC721EditionsDFS
      • ERC721SingleEditionDFS
      • ERC721GenerativeOnchain
      • Deprecated contracts
    • Custom metadata renderers
      • Example custom renderers
    • Minting protocol
      • Mint Managers
      • Mint Mechanics
        • Dutch auction mechanic
        • Ranked auction mechanic
        • Verisart mechanic
        • Seed-based mechanic
        • Auction Manager *
      • Referral Manager
    • Management modules
      • TokenManager
      • RoyaltyManager
    • Observability
    • Onchain File Storage
    • Mint fee oracle
    • Protocol rewards
      • Creator rewards
      • Mint referral rewards
    • Crosschain burn / redeem
  • Official links
    • ✨Highlight website
    • 🟣Highlight Farcaster
    • 🐦Highlight Twitter
    • 👋About us
Powered by GitBook
On this page
  • Uploading your NFT as a URI
  • Minting your SVG
  1. For creators
  2. Generative & onchain art tools

Storing SVGs onchain

PreviousOnchain file systemNextDownloading token metadata

Last updated 11 months ago

Contracts deployed on Highlight automatically store all assets and metadata on Arweave. This is cheaper than storing data on the blockchain, while still guaranteeing decentralization.

In the case that you want all your data on your contract, this article will walk through how you can store SVGs and text on the blockchain.

Note: if you want to store files onchain, see Onchain File Storage.

Uploading your NFT as a URI

To upload your SVG-based NFT onto your contract, you'll need to convert it into a Uniform Resource Identifier (URI) so that your browser can render it.

  1. Transform your SVG file to URI: Take your SVG file code and convert it into an URI. URI's are a character sequence that typically helps identify a resource connected to the internet. It helps to distinguishes one resource from another. Use tools such as or to convert your SVG into a URI.

Minting your SVG

Once you have your URI for your token, you can write this directly onto your contract via the applicable block explorer (for instance, if your contract is deployed on Ethereum, you can use Etherscan).

Instructions below on how to write your SVG directly on your contract:

  1. Deploy contract on Highlight

  2. Go to block explorer, then "Write as Proxy". You’ll need to “verify as proxy” which can be done by selecting “more options”

  3. Write to contract One of one, limited edition, or open edition For any of the above collection styles, to change an entire edition's metadata to SVG, go to field 22 "setEditionURI" Enter the editionID of the collection. This can be found on the token management page. For open editions, it will always be 0. Reference image below. For "_uri (string)", enter in the URI pointing to the token metadata. Generative or series style collection For series and generative series, you can update a single token's metadata to SVG. Use field 30 "setTokenURIs". Under "ids", enter in the token ID for applicable token. For URIs, enter in the URI for the token SVG.

👨‍🎨
🔮
this
this
Edition ID for one of ones, limited, and open editions
Token ID for generative and series collections