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
  1. For creators
  2. Advanced

Fulfilling auctions for non-transferable tokens

PreviousUpload asset specificationsNextAbout Highlight

Last updated 11 months ago

If a collection sold via auction is configured as non-transferable (i.e. "soul bound"), you will need to temporarily reenable transferability fulfill the auction. After completing the auction process, you can then revert back to the non-transferable state. To do this, just follow these steps:

  1. Copy the contract address and head to the applicable blockchain explorer (e.g. Etherscan). The contract address can be found on the token management page.

  2. On the blockchain explorer, select the "Contract" tab. To update the transferability of tokens, we'll be using the "Write as proxy" tab.

  3. Prior to writing to the contract, you will first have to verify that the contract is a proxy. Do so by going to the "Contract" tab and selecting "code". Then select the dropdown arrow for more options, and hit "Is this a proxy?".

  4. On this page, select "Contract" tab. Then select “Write as proxy” and connect to web3 with the address that deployed the contract.

  5. Go to field 14, "removeGranularTokenManagers" on the contract. Enter the following argument for the _ids field: [0]

  6. Hit "write" to submit the transaction. Sign the transaction and wait for the transaction to complete. Doing so will make the collection transferable.

After the transaction has been confirmed, you will be able to fulfill the auction. This means auction winners can claim the tokens and you will be able to withdraw funds from escrow.

When the auction has been fulfilled, you can make the collection non-transferable again. Instructions below:

  1. Head to the same contract page on the applicable blockchain explorer.

  2. Select the "Contract" tab and then "Write as Proxy".

  3. Connect your wallet.

  4. This time, go to field 25, "setGranularTokenManagers"

  5. Hit "write" to submit the transaction.

The collection will now be non-transferable again!

Enter the following arguments: _ids: [0] For _tokenManagers, you'll input the address of the NonTransferableTokenManager in brackets. You'll need to select the applicable address which can be found on this page . As an example, if you're collection is on Base, you would enter: [0x0266115EBa50E6EE69C067C0D6c5d542E9b40Bd5]

👨‍🎨
🤓
here