Skip to content

Getting tokens of an 1155 contract

Both onchain and premint (gaslessly created) tokens of a Zora 1155 contract can be retrieved using the the Collector Client function getTokensOfContract() and passing a token contract address. The function returns a tokens array with an item for each token of the contract. Each item in tokens contains information the token in the token object, and has a function prepareMint. The prepareMint function takes a quantity to mint and returns the transaction parameters to mint the token, costs to mint the token, and any necessary erc20 approvals that must be executed before minting the token.

import { 
  useChainId, 
  usePublicClient, 
  useAccount,
  useWriteContract 
} from 'wagmi';
import { createCollectorClient } from "@zoralabs/protocol-sdk";
 
const chainId = useChainId();
const publicClient = usePublicClient();
 
// initiate the collector client
const collectorClient = createCollectorClient({ chainId, publicClient });
 
// get the item that can be minted, and a function to prepare 
// a mint transaction
const { tokens, contract } = await collectorClient.getTokensOfContract({
  // collection address to mint
  tokenContract: "0x1234567890123456789012345678901234567890",
});
 
 
// the function returns an array of `tokens`, with each item
// containing information  about the item that can be minted
tokens[0]!.token.
contract
creator
maxSupply
mintFeePerQuantity
mintType
tokenURI
totalMinted
// The `prepareMint` function of the any returned token // can be used to prepare a transaction to mint x quantity of // that token to a recipient const { address } = useAccount(); const { parameters, costs } = tokens[0]!.prepareMint({ minterAccount: address!, quantityToMint: 3n }); const { writeContract } = useWriteContract(); // When the button is clicked, the transaction to mint 3 tokens // of the first returned token is written to the network <button onClick={() => writeContract(parameters)}></button> // costs to mint the 3 tokens can be retrieved // from the returned `cost` object costs.
mintFee
totalCostEth
totalPurchaseCost
totalPurchaseCostCurrency