Search
⌃K
📄

Smart Contracts - Collectives

Common questions related to direct interactions with Syndicate smart contracts.

Transfers

How do I transfer ownership of my collective from one wallet to another?

  1. 1.
    Navigate to a tool that allows you to execute direct smart contract interactions from the owner wallet, such as Gnosis or MyEtherWallet (both are compatible with MetaMask). If you didn't set up the club with Gnosis, you should use MyEtherWallet. For these instructions, we'll use MyEtherWallet.
  2. 2.
    Press "Access my wallet" -> "Browser extension" to connect with MetaMask.
  3. 3.
    Press "Contract" -> "Interact with Contract."
  4. 4.
    Input the following information: Contract Type: *Blank* Contract Address: The value from your Syndicate's URL. For example, if your URL is app.syndicate.io/collectives/0x4a2c85076ac921518b3af37095c49091713d619, you should paste in 0x4a2c85076ac921518b3af37095c49091713d619. ABI/JSON Interface: transferOwnership.json attached below Press "Interact."
  5. 5.
    Input the following information: Function: TransferOwnership newOwner: The wallet address of the new owner of the collective Press "Write" -> "Confirm & Send."
transferOwnership.json
251B
Code

How do I set secondary royalties for OpenSea?

  1. 1.
    Navigate to a tool that allows you to execute direct smart contract interactions from the owner wallet, such as Gnosis or MyEtherWallet (both are compatible with MetaMask). If you didn't set up the club with Gnosis, you should use MyEtherWallet. For these instructions, we'll use MyEtherWallet.
  2. 2.
    Press "Contract" -> "Interact with Contract."
  3. 3.
    Press "Access my wallet" -> "Browser extension" to connect with MetaMask.
  4. 4.
    Input the following information: Contract Type: *Blank* Contract Address: The value from your Syndicate's URL. For example, if your URL is app.syndicate.io/clubs/0x4a2c85076ac921518b3af37095c49091713d619, you should paste in 0x4a2c85076ac921518b3af37095c49091713d619. ABI/JSON Interface: updateTransferGuard.json attached below Press "Interact."
  5. 5.
    Input the following information: Function: updateTransferGuard implementation (address): 0x187bb389533C4d51A445D82338A6630B5D773F4e Press "Write" -> "Confirm & Send."
  6. 6.
    Done! You have now added a royalty filter to your Syndicate Collective.
updateTransferGuard.json
255B
Code

Mints

How do I set an allowlist of addresses for my Collective?

  1. 1.
    Open your Collective in another tab. The URL of your Collective should look something like this: https://app.syndicate.io/collectives/<contract_address>?chain=mainnet
  2. 2.
    Immediately before the ? in the URL, paste the term /merkle.
  3. 3.
    Follow the instructions for enabling the allowlist module and disabling the default minting module.
  4. 4.
    Enter the addresses you would like to add to the allowlist. Click "Register Merkle Root with Contract."
  5. 5.
    Done! Your collective NFTs will now only be able to be minted by the address on your allowlist.

How do I airdrop NFTs to my Collective?

Make sure your collective is set to "Open to new members" and uses the "Until a max number of collective NFTs are claimed" minting parameter. If you need to modify your collective for these settings, please see the instructions here.
  1. 1.
    Navigate to a tool that allows you to execute direct smart contract interactions from the owner wallet, such as Gnosis or MyEtherWallet (both are compatible with MetaMask). If you didn't set up the collective with Gnosis, you should use MyEtherWallet. For these instructions, we'll use MyEtherWallet.
  2. 2.
    Press "Access my wallet" -> "Browser extension" to connect with MetaMask.
  3. 3.
    Press "Contract" -> "Interact with Contract."
  4. 4.
    Input the following information: Contract Type: *Blank* Contract Address: 0x19cf03a6f1190062eeafd70c42cbc5f7ecff05a8 ABI/JSON Interface: updateModule.json attached below Press "Interact."
  5. 5.
    Input the following information: Function: updateModule token: The value from your Collective's URL. For example, if your URL is app.syndicate.io/collectives/0x4a2c85076ac921518b3af37095c49091713d619, you should paste in 0x4a2c85076ac921518b3af37095c49091713d619. module: 0xb6e77703b036bfb97dd40a22f021a85ae4a6d750 allowed: true Press "Write" -> "Confirm & Send."
  6. 6.
    Input the following information: Contract Type: *Blank* Contract Address: 0xb6e77703b036bfb97dd40a22f021a85ae4a6d750 ABI/JSON Interface: ownerMintToNAddresses.json attached below Press "Interact."
  7. 7.
    Input the following information: Function: ownerMintToNAddresses collectiveAddress: The value from your Collective's URL. For example, if your URL is app.syndicate.io/collectives/0x4a2c85076ac921518b3af37095c49091713d619, you should paste in 0x4a2c85076ac921518b3af37095c49091713d619. accounts: The wallet addresses receiving NFTs. For example,["0x…acc1", "0x…acc2", ...] Press "Write" -> "Confirm & Send."
updateModule.json
443B
Code
ownerMintToNAddresses.json
470B
Code

I've already airdropped NFTs to my Collective once. How do I airdrop NFTs to my Collective in subsequent iterations?

Make sure your collective is set to "Open to new members" and uses the "Until a max number of collective NFTs are claimed" minting parameter. If you need to modify your collective for these settings, please see the instructions here.
  1. 1.
    Navigate to a tool that allows you to execute direct smart contract interactions from the owner wallet, such as Gnosis or MyEtherWallet (both are compatible with MetaMask). If you didn't set up the collective with Gnosis, you should use MyEtherWallet. For these instructions, we'll use MyEtherWallet.
  2. 2.
    Press "Access my wallet" -> "Browser extension" to connect with MetaMask.
  3. 3.
    Press "Contract" -> "Interact with Contract."
  4. 4.
    Input the following information: Contract Type: *Blank* Contract Address: 0xb6e77703b036bfb97dd40a22f021a85ae4a6d750 ABI/JSON Interface: ownerMintToNAddresses.json attached below Press "Interact."
  5. 5.
    Input the following information: Function: ownerMintToNAddresses collectiveAddress: The value from your Collective's URL. For example, if your URL is app.syndicate.io/collectives/0x4a2c85076ac921518b3af37095c49091713d619, you should paste in 0x4a2c85076ac921518b3af37095c49091713d619. accounts: The wallet addresses receiving NFTs. For example,["0x…acc1", "0x…acc2", ...] Press "Write" -> "Confirm & Send."
ownerMintToNAddresses.json
470B
Code

Renders

How do I assign custom metadata to each NFT in my Collective?

For more information on ERC-721 metadata standards, read OpenSea's docs here: https://docs.opensea.io/docs/metadata-standards
  1. 1.
    Create a folder on your local computer. Within that folder, for each NFT in your collective, create a JSON file for your NFT's metadata. You can use any metadata format you'd like, but we've attached an example below in metadata.json for reference. To ensure each NFT renders the correct metadata, you must name each JSON file after the token ID it will affect. After you're done editing each JSON, remove the .json extension.
  2. 2.
    If you'd like to assign custom artwork/images as part of this metadata update, proceed to step 3. If not, skip to step 4.
  3. 3.
    Create a folder on your local computer. Within that folder, drop in your NFT artwork files. Upload and pin your artwork folder to IPFS via Pinata. You can create an account and upload up to 100 images for free. When uploading your files, please make sure you do not 'submarine' them. Then, navigate to the metadata folder you created in step 1, and in each JSON's "image" property, paste in your desired image's IPFS hash (which should look something like ipfs://QmbufdPyW3ErPdEbWRHZo732U5xAAbr7Tzu4JtQCvDfavB/image.png).
  4. 4.
    Upload and pin your metadata folder to IPFS via Pinata. Make sure the files within your folder do not have extensions.
  5. 5.
    Next, we'll execute a series of smart contract interactions: Navigate to a tool that allows you to execute direct smart contract interactions from the owner wallet, such as Gnosis or MyEtherWallet (both are compatible with MetaMask). If you didn't set up the collective with Gnosis, you should use MyEtherWallet. For these instructions, we'll use MyEtherWallet.
  6. 6.
    Press "Access my wallet" -> "Browser extension" to connect with MetaMask.
  7. 7.
    Press "Contract" -> "Interact with Contract."
  8. 8.
    Input the following information: Contract Type: *Blank* Contract Address: The value from your Collective's URL. For example, if your URL is app.syndicate.io/collectives/0x4a2c85076ac921518b3af37095c49091713d619, you should paste in 0x4a2c85076ac921518b3af37095c49091713d619. ABI/JSON Interface: updateRenderer.json attached below Press "Interact."
  9. 9.
    Input the following information: Function: updateRenderer address implementation: 0xeb1081b1bc69bbc5f39c7ae4a2d26618ff8fa998 Press "Write" -> "Confirm & Send."
  10. 10.
    Input the following information: Contract Type: *Blank* Contract Address: 0xeb1081b1bc69bbc5f39c7ae4a2d26618ff8fa998 ABI/JSON Interface: updateBaseTokenURI.json attached below Press "Interact."
  11. 11.
    Input the following information: Function: updateBaseTokenURI collective address: The value from your Collective's URL. For example, if your URL is app.syndicate.io/collectives/0x4a2c85076ac921518b3af37095c49091713d619, you should paste in 0x4a2c85076ac921518b3af37095c49091713d619. string memory baseURI: The value from your Pinanta's metadata folder URL. For example, if your URL is https://gateway.pinata.cloud/ipfs/QmbufdPyW3ErPdEbWRHZo732U5xAAbr7Tzu4JtQCvDfavB, you should paste in ipfs://QmbufdPyW3ErPdEbWRHZo732U5xAAbr7Tzu4JtQCvDfavB/. Press "Write" -> "Confirm & Send."
  12. 12.
    Done! You have now updated the metadata of your NFTs. If you'd like to verify that the metadata process was executed successfully, you can perform the following contract interaction:
  13. 13.
    Input the following information: Contract Type: *Blank* Contract Address: 0xeb1081b1bc69bbc5f39c7ae4a2d26618ff8fa998 ABI/JSON Interface: tokenURIOf.json attached below Press "Interact."
  14. 14.
    Input the following information: Function: tokenURIOf collective address: The value from your Collective's URL. For example, if your URL is app.syndicate.io/collectives/0x4a2c85076ac921518b3af37095c49091713d619, you should paste in 0x4a2c85076ac921518b3af37095c49091713d619. tokenId: According to the wallet address you'd like to retrieve metadata for, identify the corresponding Token ID, which can be found on Etherscan. On your collective's dashboard, click the "View on Etherscan" button. Under the "More Info" modal, click on the value for "Token Tracker." Next, click on the "Inventory" tab near the bottom half of the screen. You'll then see info for both wallet addresses and corresponding token IDs. Press "Call" -> "Confirm & Send."
  15. 15.
    If the metadata update process has been executed successfully, this interaction will return the IPFS hash of the metadata JSON file you set in step 11. If the two values match, you're good to go!
Please note that metadata updates to platforms like OpenSea may take as long as a few hours to render.
metadata.json
168B
Code
updateRenderer.json
254B
Code
updateBaseTokenURI.json
357B
Code
tokenURIOf.json
445B
Code

I've already assigned custom metadata to each NFT in my Collective once. How do I update the metadata in my Collective for subsequent iterations?

  1. 1.
    Navigate to the metadata folder on your local computer, or download it from IPFS/Pinata, and make the desired modifications to each NFT's JSON.
  2. 2.
    Upload and pin your updated metadata folder to IPFS via Pinata. Make sure the files within your folder do not have extensions.
  3. 3.
    Navigate to a tool that allows you to execute direct smart contract interactions from the owner wallet, such as Gnosis or MyEtherWallet (both are compatible with MetaMask). If you didn't set up the collective with Gnosis, you should use MyEtherWallet. For these instructions, we'll use MyEtherWallet.
  4. 4.
    Press "Access my wallet" -> "Browser extension" to connect with MetaMask.
  5. 5.
    Press "Contract" -> "Interact with Contract."
  6. 6.
    Input the following information: Contract Type: *Blank* Contract Address: 0xeb1081b1bc69bbc5f39c7ae4a2d26618ff8fa998 ABI/JSON Interface: updateBaseTokenURI.json attached below Press "Interact."
  7. 7.
    Input the following information: Function: updateBaseTokenURI collective address: The value from your Collective's URL. For example, if your URL is app.syndicate.io/collectives/0x4a2c85076ac921518b3af37095c49091713d619, you should paste in 0x4a2c85076ac921518b3af37095c49091713d619. string memory baseURI: The value from your Pinanta's updated metadata folder URL. For example, if your URL is https://gateway.pinata.cloud/ipfs/QmbufdPyW3ErPdEbWRHZo732U5xAAbr7Tzu4JtQCvDfavB, you should paste in ipfs://QmbufdPyW3ErPdEbWRHZo732U5xAAbr7Tzu4JtQCvDfavB/. Press "Write" -> "Confirm & Send."
  8. 8.
    Done! You have now updated the metadata of your NFTs.
Please note that metadata updates to platforms like OpenSea may take as long as a few hours to render.
updateBaseTokenURI.json
357B
Code

Cory Van Lew x Rug Radio

approve.json
434B
Code