Bring Your Own Collection
Start accepting payments into your contract
Crossmint has a pre-audited library of smart contracts that serve most use cases. However, if you have custom needs, you can also bring your own.
The Checkout has been battle-tested at scale with Crossmint’s collections, and may result in a more reliable experience than using an untested contract, or at least require less trouble-shooting.
When does it make sense to bring my own contract?
When does it make sense to bring my own contract?
- When you require very custom functionality not supported by Crossmint’s contracts.
- If you’re developing a marketplace.
- If you have an accesslist.
Register Collection Guide
Check out the step by step guide for registering a collection
Contracts Supported
Pre-requisites
- Your contract must be ERC-721, ERC-721A, or ERC-1155 compliant.
- The minting function must allow minting directly to an address that is different from the one that invoked the contract. And it must contain at least one parameter that specifies that recipient address.
- A single address must be able to call the mint function unlimited times but does not need to be able to hold unlimited NFTs.
For Xion blockchain contracts, please refer to our Xion Contract Requirements documentation.
Contract Registration
You may register contracts manually from the console or via .
To register a contract manually, simply go to the console, click on Token collections
and follow the steps on the wizard.
My ABI wasn't automatically imported
My ABI wasn't automatically imported
When you compile your smart contract there will be a corresponding abi file with an .abi
or .json
extension.
Inside this file, you’ll see JSON property named abi, which describes the functions in your smart contract. Here’s an example of a very simple abi file. Yours will likely have more function descriptions.
Copy the JSON array object that comes after the string abi
and paste it into the Contract ABI
text box in the developer console. The content you paste in should begin with [
and end with ]
.
Specifying the remaining parameters
Specifying the remaining parameters
Whether your ABI was retrieved automatically or you pasted it in manually you need to specify the:
- Mint function
- Recipient address parameter name
- [Optional] Quantity of NFTs to mint parameter name
Crossmint will attempt to automatically select these values for you, but it’s important to ensure they are set correctly. Especially if you’re setting up a USDC mint function as the list of options will be longer.
Using proxy contracts
Using proxy contracts
Proxy contracts are an advanced feature. You should use this only if you are certain that your contracts adhere to this pattern. This is crucial because Crossmint requires the actual NFT contract address when you register a mint/buy/purchase/claim function in a sales contract or revenue splitter.
If you don’t specify the NFT contract address, our system won’t be able to extract token URI information or facilitate transfers. Set this up only if it isn’t a transparent proxy, which is common for upgradeable contracts.
Pre-requisites
- Your contract must be ERC-721, ERC-721A, or ERC-1155 compliant.
- The minting function must allow minting directly to an address that is different from the one that invoked the contract. And it must contain at least one parameter that specifies that recipient address.
- A single address must be able to call the mint function unlimited times but does not need to be able to hold unlimited NFTs.
For Xion blockchain contracts, please refer to our Xion Contract Requirements documentation.
Contract Registration
You may register contracts manually from the console or via .
To register a contract manually, simply go to the console, click on Token collections
and follow the steps on the wizard.
My ABI wasn't automatically imported
My ABI wasn't automatically imported
When you compile your smart contract there will be a corresponding abi file with an .abi
or .json
extension.
Inside this file, you’ll see JSON property named abi, which describes the functions in your smart contract. Here’s an example of a very simple abi file. Yours will likely have more function descriptions.
Copy the JSON array object that comes after the string abi
and paste it into the Contract ABI
text box in the developer console. The content you paste in should begin with [
and end with ]
.
Specifying the remaining parameters
Specifying the remaining parameters
Whether your ABI was retrieved automatically or you pasted it in manually you need to specify the:
- Mint function
- Recipient address parameter name
- [Optional] Quantity of NFTs to mint parameter name
Crossmint will attempt to automatically select these values for you, but it’s important to ensure they are set correctly. Especially if you’re setting up a USDC mint function as the list of options will be longer.
Using proxy contracts
Using proxy contracts
Proxy contracts are an advanced feature. You should use this only if you are certain that your contracts adhere to this pattern. This is crucial because Crossmint requires the actual NFT contract address when you register a mint/buy/purchase/claim function in a sales contract or revenue splitter.
If you don’t specify the NFT contract address, our system won’t be able to extract token URI information or facilitate transfers. Set this up only if it isn’t a transparent proxy, which is common for upgradeable contracts.
Instant support for:
- Primaries: Candy Machine v3, Metaplex Instant Sales, Magic Eden’s Launchpad
- Secondaries: Auction House, Tensor, Magic Eden API, Hyperspace