Fetch NFTs
Visualize the your user's assets in your wallet
In order to create a robust front-end wallet experience, you need to know which NFTs your users are holding. We provide an API that helps here - by fetching the NFT contents of a user’s wallet:
Using full whitelabel APIs
const fetch = require('node-fetch');
const url = 'https://staging.crossmint.com/api/v1-alpha1/wallets/chain:wallet/nfts?page=xx&perPage=xx';
const options = {
method: 'GET',
headers: {
accept: 'application/json',
'X-CLIENT-SECRET': '<YOUR_CLIENT_SECRET>',
'X-PROJECT-ID': '<YOUR_PROJECT_ID>'
}
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));
Using Crossmint Connect
Using partial whitelabel APIs
Prerequisites
In order to get started, create an API key from the developer console and contact a Crossmint representative to have the
user:wallets.read
scope added to your API key.
Create a wallet
Parameters:
- chain: The chain the wallet should be created for. Options are: Ethereum, Polygon, BSC, Solana, Cardano
- email: The email address this wallet will be associated to
Input:
curl --request POST \
--url https://staging.crossmint.com/api/v1-alpha1/wallets \
--header 'X-CLIENT-SECRET: <YOUR_CLIENT_SECRET>' \
--header 'X-PROJECT-ID: <YOUR_PROJECT_ID>' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"chain": "<chain>",
"email": "<email>"
}'
Possible responses:
Code | User visible message |
---|---|
201 | Wallet created |
400 | Bad request. Most likely the parameters email and chain were not included, or were not provided in the proper format |
401 | Unauthorized. The API key may not exist, or does not have the proper scopes to perform this action (wallets.create ) |
Fetch contents from a wallet
Similar to full whitelabel, but you not need to specify collectionAddress. This is because the wallet is not siloed to your application. Not currently live. Retrieve assets via API coming soon - sample documentation below
Parameters:
- walletAddress: Wallet address for which assets should be fetched
- chain: Chain for which wallet should be fetched. Options are: Ethereum, Polygon, BSC, Solana, Cardano
- contractAddress: Contract address for collection (E.g., 0x… on EVM; Candy machine ID on Solana). Needs to be registered in developer console
- Page: Page index, starting with 1
- perPage: Number of items to display per page. Optional
Input:
curl --request GET \
--url 'https://staging.crossmint.com/api/v1-alpha1/wallets/<chain>:<address>/nfts?page=<xx>&perPage=<xx>' \
--header 'X-CLIENT-SECRET: <YOUR_CLIENT_SECRET> \
--header 'X-PROJECT-ID : <YOUR_PROJECT_ID>'
Possible responses:
Code | User visible message |
---|---|
200 | Success (metadata returned) |
400 | walletAddress is not included or is not correct format |
400 | Chain is not specified, formatted correctly or supported (chains supported: Ethereum, Polygon, BSC, Solana, Cardano). For other chains, contact us. Others are available but require manual activation |
400 | contractAddress is not included or is not correct format |
401 | Unauthorized. The API key may not exist, or does not have the proper scopes to perform this action (wallets.read). Confirm that you’ve registered your collection in the dev console |
404 | No walletAddress exists |
404 | No address exists for that user on the specified chain |
404 | contractAddress does not exist. Confirm that you’ve registered your contract in developer console |
Updated 17 days ago