Launchpads now use Crossmint’s API to register and verify a collection.
Crossmint provides an API to facilitate collection registration and verification. This functionality is for launchpads that want to use Crossmint’s checkout and allow their users to go through the KYC and collection verification flow.
Contact your Crossmint customer success engineer to request the collections.write scope be added to an existing API key. You will need to provide the projectId associated with the API key you will be using.
Your contract also needs to meet certain requirements. Please refer to the Bring your Own Collection documentation page for further information.
Please do not share your API key secret with the Crossmint team or anyone else.
Once a user has created a collection on your launchpad, you can optionally choose to register the collection with Crossmint to enable Credit Card payments. This API abstracts away much of the complexity involved from the user when they perform KYC and the collection verification process.
As the launchpad, you will pass information about the collection as parameters to the API. Crossmint will then return a URL where the user can complete the KYC and collection verification. This API call’s structure is as follows:
Sample code for the collection registration and verification API. Click on “Response” to see what a successful response will look like.
Copy
Ask AI
// Define the API URL const apiUrl = "https://staging.crossmint.com/api/v1-alpha1/collections"; // Set up the request body with actual data instead of placeholders const requestBody = { chain: "ethereum", // replace with actual chain name contractType: "erc-721", // choose between "erc-721" or "erc-1155" or "thirdweb-drop" or "candy-machine" args: { contractAddress: "0x123...", // replace with actual contract address mintFunctionName: "mintUSDC(address,uint256)", // specify the mint function abi: [], // provide the actual contract ABI array toParamName: "toAddress", // specify the 'to' parameter name in the mint function erc20MintCurrency: "usdc", // the ERC20 currency to be used for minting }, metadata: { title: "<collection_title>", // replace '<collection_title>' with the actual collection name description: "<description>", // replace `<description>` with the actual collection's description imageUrl: "<image_url>", // replace '<image_url>' with actual URL to an image }, ownership: "external", // optional - if you are regestering the collection on behalf of a creator or yourself, choose "external". Else, choose "self". category: "Art", // specify the verification category - this expedites the collection review scopes: ["payments:credit-card"], // required scopes- "payments:cross-chain" or "payments:credit-card", must specify at least one }; // Set up the request options const requestOptions = { method: "POST", headers: { 'Content-Type': 'application/json', 'X-API-KEY': '<api-key>', // replace '<api-key>' with the API Key that has the scope `collections.write` }, body: JSON.stringify(requestBody), // Convert the JavaScript object to a JSON string }; // Make the fetch request fetch(apiUrl, requestOptions) .then((response) => response.json()) // Parsing the JSON response .then((data) => console.log("Success:", data)) .catch((error) => console.error("Error:", error));
The returned URL must be the URL that your user needs to be directed to. The user can complete the verification with that URL.
You can check the status of your user’s verification with the get collection status endpoint. Upon a successful request, the verification status for the seller and collection may have either of the following values:
verified - The user has successfully completed the verification.
failed - The verification failed.
crossmint-review - It is being reviewed by the Crossmint team.
unverified - The user has not initiated or completed the verification process.
Copy
Ask AI
// Replace '<collectionId>' with the collectionId returned in the successful POST response const collectionId = 'your_collection_id'; // Replace 'your_collection_id' with the actual ID const apiUrl = `https://staging.crossmint.com/api/v1-alpha1/collections/${collectionId}`; // Set up the request options const requestOptions = { method: 'GET', headers: { 'X-API-KEY': '<api-key>', /// replace '<api-key>' with your API Key 'Content-Type': 'application/json', } }; // Make the fetch request fetch(apiUrl, requestOptions) .then(response => { if (!response.ok) { throw new Error('Network response was not ok: ' + response.statusText); } return response.json(); // Parse the JSON from the response }) .then(data => console.log('Success:', data)) // Handle the parsed data .catch(error => console.error('Error:', error)); // Handle any errors