Our vision is to make it super easy to interact with the decentralized web. We want you to be able to do this in any coding language and do it easily and quickly.
You're a key part of our vision. We love feature requests! Make one!
To use the API, you simply need to create an API key pair.
Doing so takes less than a minute. Simply go to the dashboard, create an account, and generate a key pair. You can now use this pair to make API requests. You must create your first pair via the dashboard.
Got a feature request? Submit it as an issue on our GitHub repo or email us.
Common dogma is to never give out your seed phrase. We agree. It's a matter of security, and anyone who has your seed phrase can irreversibly empty your wallet.
When using an API endpoint that requires a seed phrase, we highly recommend that users use or create a wallet that they do not use as their primary wallet.
How you make this work depends on what you're doing. If you're minting an NFT for example, we recommend creating a new wallet and then transferring just enough SOL to that wallet to mint the NFT. This is possible on Solana because such transactions cost less than a penny. We will have more tutorials in the future that make it easier for you to be secure when using our API.
We have easy-to-use endpoints for creating a new seed phrase and then deriving a public key to enable you to transfer to that new wallet.
Let's have a constructive dialog about this. Feel free to contact us. I made a video discussing this matter here.
Note: We have had a couple of individuals harrass and threaten us. These individuals did not try our API or speak to anyone who has used it. They simply saw that we require a seed phrase for certain endpoints and figured that the proper response was to attack us. (I explain why we do here.) Such harrassment and threats are not only harmful, but they are also illegal, and we will report offenders. Do not harrass us. Rather, feel free to discuss your concerns with us and we will be more than happy to work with you to come up with a solution.
Each user receives 50,000 free credits each month. Each endpoint costs a certain amount credits. Scroll below to any endpoint (i.e., function) to see how much each endpoint costs. (Or CMD+F Cost: 0 Credit
, for example)
You can learn more about our pricing here.
We frequently do custom plans. If our pricing doesn't work for you, contact us.
If you have questions, concerns, feedback, or ideas, contact us.
We have examples using both our Python wrapper and our JavaScript wrapper here.
We have built a custom Python wrapper.
pip install theblockchainapi
We also have published a JavaScript Wrapper.
npm install theblockchainapi
We also have auto-generated wrappers for the following languages:
If you would like a different language as well, submit an issue here.
If you run into any bugs with the wrappers, submit an issue here.
A wallet consists of two things: a public key and a secret recovery phrase pair. To create a wallet, you must first create a secret recovery phrase. Then, you can generate many public keys from a secret recovery phrase.
See examples (Python, JavaScript).
Use this endpoint to securely and randomly generate a secret recovery phrase for a Solana wallet.
Cost: 0 Credit
(Free) (See Pricing)
{- "secret_recovery_phrase": "fire owner display success half rescue pledge oval foam gossip window once"
}
See examples (Python, JavaScript).
Use this endpoint to securely and randomly generate a private key for a Solana wallet.
Cost: 0 Credit
(Free) (See Pricing)
{- "b58_private_key": "5UNBwP7bYMRZZeT5sENFZFaTQxwPFFhLsCKZVgicNDpB6uceSAS1qtfzGfQmAmPzM7Nf8P3b3sk2QUntY7huHhqS",
- "private_key": [
- 223,
- 170,
- 179,
- 221,
- 165,
- 191,
- 167,
- 243,
- 159,
- 10,
- 84,
- 192,
- 72,
- 106,
- 183,
- 78,
- 172,
- 176,
- 186,
- 93,
- 40,
- 181,
- 198,
- 55,
- 109,
- 52,
- 203,
- 131,
- 83,
- 175,
- 183,
- 44,
- 75,
- 198,
- 179,
- 199,
- 37,
- 156,
- 85,
- 149,
- 181,
- 161,
- 239,
- 36,
- 185,
- 202,
- 86,
- 63,
- 51,
- 210,
- 41,
- 10,
- 34,
- 230,
- 176,
- 38,
- 153,
- 219,
- 197,
- 85,
- 2,
- 197,
- 167,
- 89
]
}
See examples (Python, JavaScript).
Returns a private key array and a base58-encoded private key given wallet authentication.
A wallet is defined by a public key. A public key is derived from a combination of seed phrase, derivation path, and passphrase. Changing any one of these three will change the public key output.
You can generate a unique public key with each combination of secret recovery phrase, passphrase, and derivation path. Thus, with a single secret recovery phrase, you can generate many public keys. If you are just starting, just supply the secret recovery phrase you generated with the Solana Wallet Secret Recovery Phrase endpoint.
If you are trying to get a public key that already exists (e.g., created in the Phantom wallet), make sure you use the correct derivation path and passphrase. To read more about that, see the descriptions of those parameters below.
Cost: 0 Credit
(Free) (See Pricing)
required | SecretRecoveryPhrase (object) or PrivateKey (object) or B58PrivateKey (object) (Wallet) The wallet authentication information used to sign and submit the transaction. Click the |
{- "wallet": {
- "secret_recovery_phrase": "fire owner display success half rescue pledge oval foam gossip window once",
- "derivation_path": "m/44/501/0/0",
- "passphrase": "water"
}
}
{- "b58_private_key": "5UNBwP7bYMRZZeT5sENFZFaTQxwPFFhLsCKZVgicNDpB6uceSAS1qtfzGfQmAmPzM7Nf8P3b3sk2QUntY7huHhqS",
- "private_key": [
- 223,
- 170,
- 179,
- 221,
- 165,
- 191,
- 167,
- 243,
- 159,
- 10,
- 84,
- 192,
- 72,
- 106,
- 183,
- 78,
- 172,
- 176,
- 186,
- 93,
- 40,
- 181,
- 198,
- 55,
- 109,
- 52,
- 203,
- 131,
- 83,
- 175,
- 183,
- 44,
- 75,
- 198,
- 179,
- 199,
- 37,
- 156,
- 85,
- 149,
- 181,
- 161,
- 239,
- 36,
- 185,
- 202,
- 86,
- 63,
- 51,
- 210,
- 41,
- 10,
- 34,
- 230,
- 176,
- 38,
- 153,
- 219,
- 197,
- 85,
- 2,
- 197,
- 167,
- 89
]
}
See examples (Python, JavaScript).
Returns a public key given wallet authentication.
A wallet is identified by a public key. A public key is derived from a combination of seed phrase, derivation path, and passphrase. Changing any one of these three will change the public key output.
It can also be derived from a private key.
*You can generate a unique public key with each combination of secret recovery phrase, passphrase, and derivation path; or from a private key. Thus, with a single secret recovery phrase, you can generate many public keys; however, with a private key, you can only generate one public key. If you are just starting, generate a secret recovery phrase or private key.
If you are trying to get a public key that already exists (e.g., created in the Phantom wallet), make sure you use the correct derivation path and passphrase; or just use the private key. To read more about that, see the descriptions of those parameters below.
Cost: 0 Credit
(Free) (See Pricing)
required | SecretRecoveryPhrase (object) or PrivateKey (object) or B58PrivateKey (object) (Wallet) The wallet authentication information used to sign and submit the transaction. Click the |
{- "wallet": {
- "secret_recovery_phrase": "fire owner display success half rescue pledge oval foam gossip window once",
- "derivation_path": "m/44/501/0/0",
- "passphrase": "water"
}
}
{- "public_key": "GoUhxkKRiy8psWcr1csF1mbuDsfNd28JZXNHMQ5BSBnc"
}
See transfer SOL example (Python, JavaScript).
See transfer NFT example (can also be used for SPL token) (Python, JavaScript).
This is a powerful function. It might be slightly confusing because there are several optional parameters, so take some time to review it. This function can send SOL, send an SPL token, or send an NFT. You can set the fee payer of the transaction; you can sign and submit the transaction for confirmation; and you can select to simply return the compiled transaction so that you can submit it to the user for signing (e.g., via Phantom; no private keys required in this case).
Transfer SOL, a token or an NFT to another address. If you're transferring an NFT, supply the mint
(the address of the mint) for the token_address
.
SENDER: Note that the wallet information is used to authorize the sending of the tokens and identifies the source of the tokens. If return_compiled_transaction = false
, we sign and submit the transaction (wallet
is required in this case; do not provide a value for sender_public_key
). If return_compiled_transaction = true
, we compile the transaction (one of wallet
or sender_public_key
is required in this case; do not provide both).
RECIPIENT: recipient_address
identifies the receiver. This is entirely separate from the information used for the SENDER above. So, in this API call, there are two wallets involved, but only one (namely, the SENDER) is needed to authorize the transaction.
FEE_PAYER: The fee payer of the transaction defaults to wallet
(or sender_public_key
). To set a different fee payer, provide a value for fee_payer_wallet
.
If you're transfering a token, supply the token address found on the explorer (e.g., see SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt
for Serum Token) for the token_address
. If you're transferring SOL, do not supply a value for token_address
.
Cost: 2 Credit
(See Pricing)
wait_for_confirmation | boolean Default: true Whether to wait for the transaction to be confirmed on the blockchain or simply be processed. Processed means that our node has picked up the transaction request, but not that it was confirmed by the Solana cluster. Confirmed means that the cluster voted on your transaction and approved it. To be completely sure that the transaction succeeded, you can either set |
recipient_address required | string The public key address of the recipient to whom you want to send a token or NFT |
SecretRecoveryPhrase (object) or PrivateKey (object) or B58PrivateKey (object) (Wallet) The wallet authentication information used to sign and submit the transaction. Click the | |
token_address | string If you're transfering an NFT, supply the |
network | string Default: "devnet" Enum: "devnet" "mainnet-beta" |
amount | string Default: "1" This value must be a string. What you provide here depends on if you are sending an NFT, an SPL token, or SOL.
|
return_compiled_transaction | boolean Default: false If |
sender_public_key | string Default: null To understand the purpose of |
SecretRecoveryPhrase (object) or PrivateKey (object) or B58PrivateKey (object) (FeePayerWallet) If you do NOT provide a wallet here, the fee payer of the transaction will be the If you do provide a wallet, then the |
{- "wallet": {
- "secret_recovery_phrase": "fire owner display success half rescue pledge oval foam gossip window once"
}, - "token_address": "CK1LHEANTu7RFqN3XMzo2AnZhyus2W1vue1njrxLEM1d"
}
{- "transaction_signature": "38jivwh89t38hkN4dS2M585NZFRHbsGfmnuFb2MVDwrfTXdvYBamQPRo7QQNGdx8mfYahfkUV6s822nH3K7ej5nj",
- "confirmed": true
}
See example (Python, JavaScript).
Each wallet can own tokens, but in Solana, each token is actually held by an associated token account (ATA), which is an account specific for a token owned by the wallet. When you transfer an SPL token, such as Serum, or transfer an NFT, you're transfering from an ATA you own to another person's ATA for that specific token. With this endpoint, you can derive an associated token address given a wallet and a token address.
Cost: 0 Credit
(Free) (See Pricing)
public_key required | string Example: 31LKs39pjT5oj6fWjC3F76dHWf9489asCthmgj8wu7pj The public key of the wallet |
mint_address required | string Example: 7EWJNaNYfPYMaqzdAAa4ps5kpqW95B7VHsjhW1kr18sj The mint address of the token (either SPL or NFT) |
{- "associated_token_address": "CnW7tnQrfbSMkHYpvn5mtYw11qGpat6WM87D68cNT2hC"
}
See examples (Python, JavaScript).
Use this endpoint to get an airdrop of SOL on the devnet (not real SOL). Amount of 0.015, which is the minimum amount of SOL you need to mint a Metaplex NFT and then transfer it to another wallet.
Cost: 0 Credit
(Free) (See Pricing)
recipient_address required | string The address to which to send the airdrop of 0.015 SOL |
{- "recipient_address": "string"
}
{- "transaction_signature": "38jivwh89t38hkN4dS2M585NZFRHbsGfmnuFb2MVDwrfTXdvYBamQPRo7QQNGdx8mfYahfkUV6s822nH3K7ej5nj",
- "confirmed": true
}
See examples (Python, JavaScript).
See the balance of a wallet in SOL or any SPL token.
To get the balance of an SPL token, supply the mint_address
of the SPL token. The list of SPL tokens can be viewed here.
You can also use this endpoint to see whether or not a person owns an NFT. Just supply the mint_address
of the NFT. A balance of "1" means the person owns the NFT, and a balance of "0" means the person does not own the NFT. This works in most cases, but we are aware of one edge case where a balance of "0" will show up for a person who is actually the owner of the NFT. We just recommend using the getNFTOwner endpoint and comparing that output to the expected address.
Cost: 0.25 Credit
(See Pricing)
public_key required | string The public key address of the wallet |
unit | string Default: "lamport" Enum: "lamport" "sol" If you are retrieving the SOL balance, you can select whether to retrieve this in SOL or Lamport units (1 SOL = 1e9 Lamports). |
network | string Default: "devnet" Enum: "devnet" "mainnet-beta" |
mint_address | string Default: null The mint address of the SPL token or NFT. If not provided, the balance returned is in SOL. Make sure to use the correct network. You can see the mint addresses of popular SPL tokens here. Some example mint addresses of SPL tokens:
|
{- "public_key": "GKNcUmNacSJo4S2Kq3DuYRYRGw3sNUfJ4tyqd198t6vQ",
- "network": "mainnet-beta",
- "mint_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}
{- "balance": 3.322105,
- "decimals": 6,
- "integer_balance": 3322105,
- "network": "mainnet-beta"
}
See examples (Python, JavaScript).
See the token holdings of a given public key address
Cost: 2 Credits
(See Pricing)
network required | string Example: mainnet-beta The network ID (devnet, mainnet-beta) |
public_key required | string Example: GKNcUmNacSJo4S2Kq3DuYRYRGw3sNUfJ4tyqd198t6vQ The public key of the account whose list of owned NFTs you want to get |
include_nfts | boolean Default: false Whether or not to include NFTs in the response |
include_zero_balance_holdings | boolean Default: false Whether or not to include holdings that have zero balance. This indicates that the wallet held this token or NFT in the past, but no longer holds it. |
[- {
- "amount": "125000000000",
- "decimals": 9,
- "mint_address": "4UuGQgkD3rSeoXatXRWwRfRd21G87d5LiCfkVzNNv1Tt",
- "token_address": "5mSHqsF7hdQMRsnADXFy2m39G2oNHQEBLg1dFhCrTqe8",
- "ui_amount": 125
}, - {
- "amount": "10090000000000000000",
- "decimals": 9,
- "mint_address": "5jv9QU2SHehzt1Rya7hi8eEdoBMX6a98uWjXFSwWXspT",
- "token_address": "EASFLGGD8ZCwB2nux8WZtnRGF85eC3kETa81SYB5K6gW",
- "ui_amount": 10090000000
}, - {
- "amount": "3",
- "decimals": 0,
- "mint_address": "FRbqQnbuLoMbUG4gtQMeULgCDHyY6YWF9NRUuLa98qmq",
- "token_address": "3tTXfF2GWxDFnvueTFMbBagtcgzXgX9cuc8QcASFD3j8",
- "ui_amount": 3
}, - {
- "amount": "5000",
- "decimals": 0,
- "mint_address": "H32T9DYWTt83n9iRFyrq9TEGa3LUDFgWnFKrMvYS4JUf",
- "token_address": "Zd23L1RCzKApSzyLhwMZeZ5ASokgbthQhyQ5QFG7U74",
- "ui_amount": 5000
}, - {
- "amount": "3322105",
- "decimals": 6,
- "mint_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
- "token_address": "29TwF9mm2ZfrcjRiV3PCRQmgYzL95HJJhaUairYmWLJC",
- "ui_amount": 3.322105
}, - {
- "amount": "46",
- "decimals'": 6,
- "mint_address": "MangoCzJ36AjZyKwVj3VnYU4GTonjfVEnJmvvWaxLac",
- "token_address": "GizuDGzHpZFFJTjRKG57LFmzb5AooBiceugbmDPgsb5S",
- "ui_amount": 0.000046
}
]
See examples (Python, JavaScript).
See the transaction signatures of a given public key address
Cost: 1 Credits
(See Pricing)
network required | string Example: mainnet-beta The network ID (devnet, mainnet-beta) |
public_key required | string Example: GKNcUmNacSJo4S2Kq3DuYRYRGw3sNUfJ4tyqd198t6vQ The public key of the account whose list of signatures you want to get |
[- "jLmcxEjRppamX1b98PRUN1Sutmqn6HD1HugP5VPoib7AruFC2D5pyh7UPHZ9FUBww6Q5SRagoqjQTG51tcGtDDW",
- "5QEdoVR7u5dPLs8A2GLpF2F4f8rYKqJwZjAFsgNRPdgsfDuo1gRBQwCQPqpZk5aYM7eSg1uuq8cdmH5bH68GrFJ5",
- "5mdZKo9tsJijncaiVmxqVfg7PUUpk5pHebyp9ZcM53kb4RWnBqnCX18GvoQhEsYywhFkHzrXZEQksLuWhvgso4HJ",
- "2DzKmgTFZGH1aFue8wproBNZ3WGULxV6MaK9zTMZjbnL8hv3gKQ9fjpQAFAQXWeryYtgnTUfha3v4dfwMcpRcD6U",
- "vo19EnE97N2yhxwZaDSQjZFNsft7LxPBhbLeRnoVBGTam9SP91hWpBDvQ6oStkEhgXAvKDdz3poUCypU4jmpkFs",
- "22D1YEiLn8oArCLWU23hDtRk4kbZmSUQkHwXk88eDrKLYkx5zWCeDZ8UadLaa1AMkwy6jNHiDo4mVRfqX4nmUrB3",
- "3R6QjGex1TRhs62pvU78Ccg5gSNCox5K7qxemKM3zaxGWzkfJ7DoWwW4YzjSrh7ZDCxRjm9AXbfvu8Pj9w3Bs2SH"
]
See examples (Python, JavaScript).
See the NFTs that belong to a given public key address
Cost: 3 Credits
(See Pricing)
network required | string Example: mainnet-beta The network ID (devnet, mainnet-beta) |
public_key required | string Example: HE3ZYk4aWfKD7R9EmFQbxjj75JdgHuDztNAsseKVan82 The public key of the account whose list of owned NFTs you want to get |
{- "nfts_owned": [
- "9ztsoyPz96SDUUfX4yh1QnxN9Yv2TAAKcY2dUuYcgtsv",
- "5z2JAGTCDJ4KpzBDoFrapWGWcwKAjoZ2rkNqi5bvt9C3"
], - "nfts_metadata": [
- {
- "data": {
- "creators": [
- "6NTtQY7ErW6tQVYGt6cpbcw3g7JwGrVSWmkMAJva8nM3",
- "GKCE4m2Bten4ygPAn4hNJGsFhkn1hiTFj7fEFMcbDPbP"
], - "name": "Mechanic Wolf #1331",
- "seller_fee_basis_points": 600,
- "share": [
- 0,
- 100
], - "symbol": "MCW",
- "verified'": [
- 1,
- 0
]
}, - "is_mutable": true,
- "mint": "9ztsoyPz96SDUUfX4yh1QnxN9Yv2TAAKcY2dUuYcgtsv",
- "primary_sale_happened": true,
- "update_authority'": "GKCE4m2Bten4ygPAn4hNJGsFhkn1hiTFj7fEFMcbDPbP"
}, - {
- "data": {
- "creators": [
- "7xRUqdB8WHiqMtXQm5eSNk4sM5nPhm68LJiC33Hr73vE",
- "HtpFSATcbbdGkDFXiExJtxBG1K1BpLrUVoxzSEwxuPgw"
], - "name": "Millionaire Ape #647",
- "seller_fee_basis_points": 750,
- "share": [
- 0,
- 100
], - "symbol": "YC",
- "verified": [
- 1,
- 0
]
}, - "is_mutable": true,
- "mint": "5z2JAGTCDJ4KpzBDoFrapWGWcwKAjoZ2rkNqi5bvt9C3",
- "primary_sale_happened": true,
- "update_authority": "HtpFSATcbbdGkDFXiExJtxBG1K1BpLrUVoxzSEwxuPgw"
}
]
}
See examples (Python, JavaScript).
Create a Metaplex NFT on Solana.
Read more on this here.
Note: Please see this article to learn more about what nft_upload_method
means and how storing the metadata of an NFT works.
If you're using nft_upload_method = "LINK"
, then to add attributes to the NFT or an image, add them to a JSON file and upload that to Arweave/IPFS/Filecoin. See the JSON format here.
Then supply the link to the JSON file in nft_url
.
NOTE: Don't use nft_metadata
. Values provided here do not do anything at the moment. We are fixing this soon.
Cost: 5 Credits
(See Pricing)
wait_for_confirmation | boolean Default: true Whether to wait for the NFT mint to be confirmed on the blockchain or simply be processed. Processed means that our node has picked up the transaction request, but not that it was confirmed by the Solana cluster. Confirmed means that the cluster voted on your transaction and approved it. To be completely sure that the NFT was minted, you can either set |
SecretRecoveryPhrase (object) or PrivateKey (object) or B58PrivateKey (object) (Wallet) The wallet authentication information used to sign and submit the transaction. Click the | |
name | string Default: "" The name of the token. Limited to 32 characters. Stored on the blockchain. |
symbol | string Default: "" The symbol of the token. Limited to 10 characters. Stored on the blockchain. |
description | string Default: "" The description of the NFT. Limited to 2000 characters. Not stored on the blockchain. If you are providing your own If you are not providing your own Only provide a value for |
upload_method | string Default: "S3" Enum: "S3" "URI" When you choose This is uploaded to an AWS S3 bucket we own, and is an option we provide at no charge. The S3 link to this file is stored in the NFT's account on the blockchain. Learn more here. When you choose An example of a |
uri | string Default: "" The Read more here. An example of a Only provide a value for |
image_url | string Default: "" The URL of the image of the NFT. If you are providing your own If you are not providing your own Only provide a value for |
uri_metadata | object Default: {} The off-chain metadata. If you are providing your own If you are not providing your own Only provide a value for Learn more about how to format this metadata here. |
is_mutable | boolean Default: true Indicates whether or not the NFT created is mutable. If mutable, the NFT can be updated later. Once set to immutable, the NFT is unable to be changed. |
is_master_edition | boolean Default: true Whether or not the NFT is a master edition NFT. Saves about 0.001 SOL in transaction costs when set to false. |
seller_fee_basis_points | number Default: 0 Valid values from 0 to 10000. Must be an integer. Represents the number of basis points that the seller receives as a fee upon sale. E.g., 100 indicates a 1% seller fee. Seller does not receive a fee when "primary_sale_has_happened" is set to true. Will be set to false after first sale has occurred. |
creators | Array of strings Default: ["The Public Key Corresponding to The Seed Phrase, Path, and Passphrase Provided"] A JSON encoded string representing an array / list. The designated creators of the NFT. Length of the creator list must match length of the list of share. Valid lengths of the list range from 1 to 5. Each item in the list must be a valid public key address. |
share | Array of integers Default: [100] A JSON encoded string representing an array / list. The share of the royalty that each creator gets. Valid values range from 0 to 100. Sum of the values must equal 100. Only integer value accepted. Length of the share list must match length of the list of creators. |
mint_to_public_key | string Default: "The public key of the wallet provided" Assign ownership of the NFT to the public key address given by |
network | string Default: "devnet" Enum: "devnet" "mainnet-beta" This determines which network you choose to run the API calls on. We recommend first testing on the devnet, because minting an NFT costs a little above 0.01 SOL, which is about $1.60 at the time of this writing. When you run on the mainnet-beta, each successful call will deduct approximately that much. When you run on the devnet, that amount is deducted from a simulated amount, so you are not paying with real SOL. To get SOL on the devnet, airdrop SOL to this address using the CLI. Keep in mind that you can only do this every so often. If you are rate-limited, consider using a VPN and trying again, or just waiting. To get SOL on the mainnet-beta, you must transfer real SOL to this account from another wallet (e.g., from another wallet you own, from an exchange, etc.). We hope to make this process easier in the future, and if you have any suggestions, please add them as an issue on our GitHub repository for the API. To get a fee estimate, make a GET requests to the v1/solana/nft/mint/fee endpoint (details in sidebar). |
{- "wait_for_confirmation": true,
- "wallet": {
- "secret_recovery_phrase": "fire owner display success half rescue pledge oval foam gossip window once"
}, - "return_compiled_transaction": false,
- "name": "Super Musk",
- "symbol": "MUSK",
- "description": "Buy this image of Super Musk!",
- "uri_metadata": {
- "attributes": [
- {
- "trait_type": "is_curious",
- "value": "true"
}, - {
- "trait_type": "name",
- "value": "george"
}
]
}, - "upload_method": "S3",
- "is_mutable": true,
- "is_master_edition": true,
- "seller_fee_basis_points": 100,
- "creators": [
- "31LKs39pjT5oj6fWjC3F76dHWf9489asCthmgj8wu7pj",
- "G17UmNGnMJ851x3M1JXocgpft1afcYedjPuFpo1ohhCk"
], - "share": [
- 40,
- 60
], - "network": "devnet"
}
{- "confirmed": true,
- "data": {
- "creators": [
- "HuAiZg55P557gdjr5jkq79YdMe9sbdHuPj5UN21XuSyK",
- "5FzddvKbxE54KEg2WoeNiGWJYAUBabKVFg2MVCSacWiJ"
], - "name": "Vox Punks Club #966",
- "seller_fee_basis_points": 500,
- "share": [
- 0,
- 100
], - "symbol": "",
- "verified": [
- 1,
- 1
]
}, - "is_mutable": true,
- "mint": "EEr5yQpNXf7Bru6Rt5podx56HGW9CEehXqgRGh2wa71w",
- "primary_sale_happened": true,
- "update_authority": "5FzddvKbxE54KEg2WoeNiGWJYAUBabKVFg2MVCSacWiJ",
- "metadata_account": "HTu4wUU4WxL48AdQM3nQuHeY8iAqgV9aKwbes4P6Y1c4",
- "edition_nonce": 255,
- "token_standard": 0,
- "collection": {
- "verified": 0,
- "key": "11111111111111111111111111111111"
}, - "uses": 0
}
See examples (Python, JavaScript).
With this endpoint, you can search for NFTs by their symbol, name of NFTs, uuid, configuration address, and update authority.
The output is a list of NFTs that match your query.
You can also provide multiple search clauses, such as the update authority (update_authority="G17UmNGnMJ851x3M1JXocgpft1afcYedjPuFpo1ohhCk"
) and symbol begins with "Sol" (symbol="Sol", symbol_search_method='begins_with'
).
Cost: 1 Credit
(See Pricing)
update_authority | string The public key of the update authority of the NFT |
update_authority_search_method | string Default: "exact_match" Value: "exact_match" Only |
mint_address | string The mint address of the NFT |
mint_address_search_method | string Default: "exact_match" Value: "exact_match" Only |
name | string The name of the NFT |
name_search_method | string Default: "exact_match" Enum: "begins_with" "exact_match" |
uri | string The NFT's uri |
uri_search_method | string Default: "exact_match" Enum: "begins_with" "exact_match" |
symbol | string The symbol associated with the candy machine |
symbol_search_method | string Default: "exact_match" Enum: "begins_with" "exact_match" |
network | string Default: "devnet" Enum: "devnet" "mainnet-beta" |
{- "name": "Elon Musk",
- "name_search_method": "exact_match",
- "symbol": "Elo",
- "symbol_search_method": "begins_with",
- "network": "mainnet-beta"
}
[- [
- {
- "nft_metadata": {
- "data": {
- "creators": [
- "F5Nrvo1Vn3J2uhVKYTxwx6j2vsq4m8wFj15smSmoTnz7",
- "567srSapKFaKmhpCXcQEDjsw9oBTSYLwpJ447ZmaWD4Z"
], - "name": "Elon Musk",
- "seller_fee_basis_points": 500,
- "share": [
- 0,
- 100
], - "symbol": "ElonVerse",
- "verified": [
- 1,
- 0
]
}, - "is_mutable": true,
- "mint": "7cnQ9K6Xgckd28jMj14memHJhLpPGs7iofBYr4e9iHnS",
- "primary_sale_happened": true,
- "update_authority": "567srSapKFaKmhpCXcQEDjsw9oBTSYLwpJ447ZmaWD4Z"
}, - "pub_key_hash": "GGrF8NjbSKWJHsbhBJLSdG35K9wfaWqZe1mQaPKQmuH9"
}, - {
- "nft_metadata": {
- "data": {
- "creators": [
- "Cx1ngaJkFsRJQNDRtQJzLtyr56JHXr3Z3QHnP1qVdwhz",
- "567srSapKFaKmhpCXcQEDjsw9oBTSYLwpJ447ZmaWD4Z"
], - "name": "Elon Musk",
- "seller_fee_basis_points": 500,
- "share": [
- 0,
- 100
], - "symbol": "ElonVerse",
- "verified": [
- 1,
- 0
], - "is_mutable": true,
- "mint": "Et7fwzBWVTP9wrN53N1GcToyTJR2kUQFjKvC4VzEXWzF",
- "primary_sale_happened": true,
- "update_authority": "567srSapKFaKmhpCXcQEDjsw9oBTSYLwpJ447ZmaWD4Z"
}
}, - "pub_key_hash": "14nn1oBHHB6oRNHMgLQdu7SFd3wqFW3NA7W3eGYQWMSt"
}, - {
- "nft_metadata": {
- "data": {
- "creators": [
- "ETBTMwqTp2oWfdr7krxdtKM8cfGiL4d3yVz24sZvwGpR",
- "567srSapKFaKmhpCXcQEDjsw9oBTSYLwpJ447ZmaWD4Z"
], - "name": "Elon Musk",
- "seller_fee_basis_points": 500,
- "share": [
- 0,
- 100
], - "symbol": "ElonVerse",
- "verified": [
- 1,
- 0
], - "is_mutable": true,
- "mint": "EehtKnwXy4hyB6vGBTAwnqvE3tNwQtiQPw1ebki3mR7R",
- "primary_sale_happened": true,
- "update_authority": "567srSapKFaKmhpCXcQEDjsw9oBTSYLwpJ447ZmaWD4Z"
}
}, - "pub_key_hash": "cko2u862bb9JCp7MSgKhSToHgSXEUmr8MtHpnzpZ1UR"
}
]
]
See examples (Python, JavaScript).
Get the metadata of an NFT.
If you're looking for metadata such as attributes and others, you can retrieve them from the link in the URI field of the NFT metadata returned. See the example on the right. The URI is an Arweave URL. That contains the attributes and other information about the NFT. That URL is stored on the Solana blockchain.
Cost: 0.25 Credit
(See Pricing)
network required | string Enum: "devnet" "mainnet-beta" Example: mainnet-beta The network ID |
mint_address required | string Example: EEr5yQpNXf7Bru6Rt5podx56HGW9CEehXqgRGh2wa71w The mint address of the NFT |
{- "confirmed": true,
- "data": {
- "creators": [
- "HuAiZg55P557gdjr5jkq79YdMe9sbdHuPj5UN21XuSyK",
- "5FzddvKbxE54KEg2WoeNiGWJYAUBabKVFg2MVCSacWiJ"
], - "name": "Vox Punks Club #966",
- "seller_fee_basis_points": 500,
- "share": [
- 0,
- 100
], - "symbol": "",
- "verified": [
- 1,
- 1
]
}, - "is_mutable": true,
- "mint": "EEr5yQpNXf7Bru6Rt5podx56HGW9CEehXqgRGh2wa71w",
- "primary_sale_happened": true,
- "update_authority": "5FzddvKbxE54KEg2WoeNiGWJYAUBabKVFg2MVCSacWiJ",
- "metadata_account": "HTu4wUU4WxL48AdQM3nQuHeY8iAqgV9aKwbes4P6Y1c4",
- "edition_nonce": 255,
- "token_standard": 0,
- "collection": {
- "verified": 0,
- "key": "11111111111111111111111111111111"
}, - "uses": 0
}
See examples (Python, JavaScript).
Get the owner of an NFT. This returns the public key of the wallet that owns the associated token account that owns the NFT.
If you want to get the associated token account that literally owns the NFT, derive the associated token account address from the public key returned and the NFT mint address using this endpoint.
Cost: 0.25 Credit
(See Pricing)
network required | string Enum: "devnet" "mainnet-beta" Example: devnet The network ID |
mint_address required | string Example: 4zH3Rwm1QXdfTSUqsYmeUBY4QqQmQEXJVbv4ErSK736Q The mint address of the NFT |
{- "nft_owner": "31LKs39pjT5oj6fWjC3F76dHWf9489asCthmgj8wu7pj"
}
See examples (Python, JavaScript).
Get the owner, state, listed price, and listed marketplace (if any) of an NFT.
Here's are a couple of example responses:
{
'contract': {
'contract_blockchain_identifier': 'M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K',
'contract_id': 'magic-eden-v2',
'contract_name': 'Magic Eden v2',
'contract_type': 'marketplace'
},
'owner': '25UJMR3FiMM6noQtPEaCJ6eDU2YQ7myDhikVQXmMuSRW',
'price': 50000000,
'state': 'listing'
}
{
'contract': null,
'owner': 'C37PJiJU8WTgoUoFqmB1Maw8hkuENDZoGDQA1pm54Fdd',
'price': null,
'state': 'holding'
}
This function will return whether the NFT is listed
, loaned
(Yawww NFT loans), otc
, staked
, burned
, or held
.
If listed, it will return the contract, the readable name of the contract (e.g., Magic Eden, OpenSea), the contract ID (if any; e.g., open-sea), the owner, and the listed price. From this, you can get the floor of a collection. We currently support Magic Eden (v1, v2), Exchange.Art (auction, singles), CoralCube, Solanart (v1, v2), Yawww Loans, Yawww OTC, OpenSea, Fractal, SolSea, and AlphaArt.
If loaned, it will return the loan requester as the owner, the loan amount, and the loan contract. We only support the Yawww loaning contract.
If listed on an OTC marketplace, it will return the same information as listed
. OTC is used to distinguish between marketplaces that respect royalties (OTC) and those that don't (normal ones). The only OTC
contract we track is Yawwww, at the moment. We do not yet track Solanart v3.
If staked, it will return the owner and the staking contract public key.
If burned, it will return the burner
as the owner
.
If held, it will simply return the owner.
If you want to get the literal owner, which may or may not be the same as the owner returned here, call the simplified get NFT owner function. For example, Bob might own the NFT, but if it is listed on Magic Eden, then the NFT is held in escrow and "owned" by Magic Eden. The simplified function will return Magic Eden as the owner (the literal owner). This advanced function will tell you the implied owner, which would be Bob.
Cost: 1.0 Credit
(See Pricing)
network required | string Enum: "devnet" "mainnet-beta" Example: devnet The network ID |
mint_address required | string Example: 4zH3Rwm1QXdfTSUqsYmeUBY4QqQmQEXJVbv4ErSK736Q The mint address of the NFT |
{- "contract": {
- "contract_blockchain_identifier": "M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K",
- "contract_id": "magic-eden-v2",
- "contract_name": "Magic Eden v2",
- "contract_type": "marketplace"
}, - "owner": "25UJMR3FiMM6noQtPEaCJ6eDU2YQ7myDhikVQXmMuSRW",
- "price": 50000000,
- "state": "listing"
}
See examples (Python, JavaScript).
Get the full history of an NFT, all the way up until mint.
The endpoint returns a list of events, from mint until present moment, that correspond to transactions that interacted with the NFT.
Each event is a dictionary containing basic information about the event (e.g., account_blockchain_identifier
, account_type
, block_time
, chain
, succeeded
), the event
itself, the previous state of the NFT (pre_state
), and the resulting state of the NFT (post_state
).
To see more, expand the "200 Successful Response" box below.
Cost: 15.0 Credit
(See Pricing)
network required | string Enum: "devnet" "mainnet-beta" Example: devnet The network ID |
mint_address required | string Example: 4zH3Rwm1QXdfTSUqsYmeUBY4QqQmQEXJVbv4ErSK736Q The mint address of the NFT |
[- {
- "chain": "solana",
- "account_blockchain_identifier": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC",
- "account_type": "nft_mint",
- "block_time": 1661603488,
- "succeeded": true,
- "event": {
- "transaction_blockchain_identifier": "4fTG8NwEUmwSyZ8ANN1NgaPrrtFXzAwztNgCFUPnPPVbNzHGTCbq3YJ386fTpQiwDg1vfdB7492yoya4SCqMXve",
- "primary_event_group": "nft_mint_nft",
- "primary_event_context": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "price": null,
- "creditor": null,
- "buyer": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "sender": "nul",
- "receiver": null
}, - "primary_event_data": { },
- "primary_contract": {
- "contract_blockchain_identifier": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s",
- "contract_id": "metaplex/v1/standard_program",
- "contract_name": "Metaplex: Standard Program",
- "contract_type": "standard_program",
- "organization_id": "metaplex",
- "organization__name": "Metaplex"
}
}, - "pre_state": null,
- "post_state": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": null,
- "price": null,
- "state": "holding"
}
}, - {
- "chain": "solana",
- "account_blockchain_identifier": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC",
- "account_type": "nft_mint",
- "block_time": 1661627680,
- "succeeded": true,
- "event": {
- "transaction_blockchain_identifier": "5RXLtAjDqcEAMunrrQbA2wZr2H6YDTGFkZ2HrkVs5Jy8GsZH26tVLzESVSJLojZJXE73bptVLLbghDb7ftL2ZoJ3",
- "primary_event_group": "nft_create_auction",
- "primary_event_context": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "price": 2000000000,
- "creditor": null,
- "buyer": null,
- "sender": null,
- "receiver": null
}, - "primary_event_data": {
- "start_timestamp": 1661627671,
- "end_timestamp": 1661714071,
- "price": 2000000000
}, - "primary_contract": {
- "contract_blockchain_identifier": "exAuvFHqXXbiLrM4ce9m1icwuSyXytRnfBkajukDFuB",
- "contract_id": "exchange-art/v1/nft_auction",
- "contract_name": "Exchange.Art: NFT Auction",
- "contract_type": "nft_auction",
- "organization_id": "exchange-art",
- "organization__name": "Exchange.Art"
}
}, - "pre_state": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": null,
- "price": null,
- "state": "holding"
}, - "post_state": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": {
- "contract_blockchain_identifier": "exAuvFHqXXbiLrM4ce9m1icwuSyXytRnfBkajukDFuB",
- "contract_id": "exchange-art/v1/nft_auction",
- "contract_name": "Exchange.Art: NFT Auction",
- "contract_type": "nft_auction",
- "organization_id": "exchange-art",
- "organization__name": "Exchange.Art"
}, - "price": 2000000000,
- "state": "auctioning"
}
}
]
See examples (Python, JavaScript).
Get the estimated fee for minting an NFT on the Solana blockchain using the Metaplex protocol.
Cost: 0 Credit
(Free) (See Pricing)
{- "description": "We calculated the fee as follows: 10000000 + 1461600 + 534600 = 11996200 lamports = 0.0119962 SOL. The largest portion of the fee (10000000 lamports) goes to the Metaplex protocol. They list their fees on their front page <a href=\"https://metaplex.com/\">here</a>. The rent fee (1461600 lamports) is the lifetime fee needed to store the NFT on the blockchain. This is paid to the validators of the network. You can see how the rent fees work <a href=\"https://docs.solana.com/implemented-proposals/rent\" target=\"_blank\">here</a>. The transaction fee (534600 lamports) is what is paid to the validators for processing the three transactions that compose the minting of an NFT: creating an account, initializing the mint, creating the metadata, and updating the metadata. \n",
- "fee": 11996200
}
See examples (Python, JavaScript).
Get the candy machine ID from where the NFT came, if any. NFTs can also be minted without a candy machine.
It's also possible that we return "Not Found" when the NFT actually did come from a version of a candy machine. We check for the most popular versions of candy machine, but it is possible that someone creates their own candy machine version and mints NFTs from it.
Cost: 1 Credit
(See Pricing)
mint_address required | string The address of the NFT. NOT the mint authority address |
network | string Default: "devnet" Enum: "devnet" "mainnet-beta" |
{- "mint_address": "AFPX7VQcezoxJsLWeA6zVTHLGtrjrY5SqgtmjD8jxvgx",
- "network": "mainnet-beta"
}
{- "candy_machine_id": "FmkrvXRenCGtwBHw3VtBcExp8eTdnau97upaewF4GUEX",
- "candy_machine_contract_version": "v1"
}
See examples (Python, JavaScript).
With this endpoint, you can search candy machines by their symbol, name of NFTs, uuid, configuration address, and update authority.
The output is a list of config addresses.
You can also provide multiple search clauses, such as the update authority (update_authority="G17UmNGnMJ851x3M1JXocgpft1afcYedjPuFpo1ohhCk"
) and symbol begins with "Sol" (symbol="Sol", symbol_search_method='begins_with'
).
Cost: 2 Credits
(See Pricing)
update_authority | string The public key of the update authority of the candy machine |
update_authority_search_method | string Default: "exact_match" Value: "exact_match" Only |
config_address | string The public key of the configuration of the candy machine |
config_address_search_method | string Default: "exact_match" Value: "exact_match" Only |
uuid | string The alphanumeric string of length six that corresponds to the candy machine. This is NOT the candy machine ID. This is the first six letters of the configuration address and is also used to identify the candy machine. An example is |
uuid_search_method | string Default: "exact_match" Value: "exact_match" Only |
symbol | string The symbol associated with the candy machine |
symbol_search_method | string Default: "exact_match" Enum: "begins_with" "exact_match" |
nft_name | string The name of an NFT on the candy machine, minted or unminted. For example, to find The Solana Money Boys candy machine, you already know that each NFT is named "Solana Money Boy #0", "Solana Money Boy #1", and so on. So you could search with nft_name="Solana Money Boy #0", nft_name_index=0, nft_name_search_method='exact_match', for example, which would return the candy machine ID. This also works with candy machines that are not live but are uploaded. |
nft_name_index | string Default: 0 The index of the NFT to check, e.g., the 2nd NFT would have an index of 1. We cannot search all NFTs on a candy machine currently, so you must search an NFT at a particular position, such as the first, second, and so on. In general, nft_name_index=0 works for most use cases. |
nft_name_search_method | string Default: "exact_match" Enum: "begins_with" "exact_match" |
network | string Default: "devnet" Enum: "devnet" "mainnet-beta" |
candy_machine_contract_version | string Default: "v1" Enum: "v1" "v2" The candy machine contract you want to search. If you want to search |
{- "nft_name": "Elon",
- "nft_name_index": 44,
- "nft_name_search_method": "begins_with",
- "network": "mainnet-beta"
}
[- "9AYhVG9rH4DwPufEmSD1PD3vs64GhaXWNzXb33jFpByA",
- "FmZNv5HqPWEqXHYtKPKe15WF8PuNk1FbJmVMN92dVjNP",
- "6Anxd2Tn7KEEMKpGyBdVWTCp5jpAum8cppgXMJTzp44R"
]
See examples (Python, JavaScript).
With this endpoint, you can list all candy machines published to Solana mainnet.
We update this data every 15 minutes.
The output is a list of config addresses, currently about 17000 in length.
Cost: 2 Credits
(See Pricing)
{- "last_updated": 1639529803,
- "config_addresses": [
- "9AYhVG9rH4DwPufEmSD1PD3vs64GhaXWNzXb33jFpByA",
- "FmZNv5HqPWEqXHYtKPKe15WF8PuNk1FbJmVMN92dVjNP",
- "6Anxd2Tn7KEEMKpGyBdVWTCp5jpAum8cppgXMJTzp44R"
], - "config_addresses_v1": [
- "9AYhVG9rH4DwPufEmSD1PD3vs64GhaXWNzXb33jFpByA",
- "FmZNv5HqPWEqXHYtKPKe15WF8PuNk1FbJmVMN92dVjNP",
- "6Anxd2Tn7KEEMKpGyBdVWTCp5jpAum8cppgXMJTzp44R"
], - "config_addresses_v2": [
- "BfA9f9My57iUQE1tFNd2hNzFMK9fRMbyDvWNGuFw38gB",
- "w8cmmrTixuf2rdVbxLLFsiRwcZrERxMfb8JbDKSj26f",
- "C1tf83mSHT7aptd5VagjY2VXjfqa7qgkZkjiW5nPQshN"
], - "config_addresses_magic-eden-v1": [
- "GXYYT2V594gfXoYWFj4UXbEMkymoZ6hVwxqWXjQmwRBa",
- "8fFG9VsS1PGEuQZJjxZMjXfimysUfR1sePcTqq1AehCM",
- "4PN9nnWC4ttvNpNxxaGyTkpMyVfG1a7N54U4cr4nwigF"
]
}
See examples (Python, JavaScript).
Use this endpoint to get the list of all NFTs (minted and unminted) from a Solana Candy Machine.
This works for v1
and v2
candy machines.
However, for v2
only the value for all_nfts
is provided. To determine which are minted and unminted follow this example.
You do not need to specify v1
or v2
for this endpoint as it will automatically determine it from the candy machine ID.
See example for how to get the list of NFT hashes here.
Cost: 2 Credits
(See Pricing)
network required | string Enum: "devnet" "mainnet-beta" Example: mainnet-beta The network ID |
candy_machine_id required | string Example: FmkrvXRenCGtwBHw3VtBcExp8eTdnau97upaewF4GUEX The ID of the candy machine |
{- "minted_nfts": [
- {
- "nft_metadata": {
- "data": {
- "creators": [
- "FmkrvXRenCGtwBHw3VtBcExp8eTdnau97upaewF4GUEX",
- "5hybnoWHp7ruUizgKoxSviJrGfgBLLxzybZosQoHhK6C"
], - "name": "God Particle #0078",
- "seller_fee_basis_points": 500,
- "share": [
- 0,
- 100
], - "symbol'": "GP",
- "verified": [
- 1,
- 0
]
}, - "is_mutable": true,
- "mint": "TqQvdc5USoG5snWk75YiwDTPTLJe8U1BR7pSbhDRmUS",
- "primary_sale_happened": true,
- "update_authority": "5hybnoWHp7ruUizgKoxSviJrGfgBLLxzybZosQoHhK6C"
}, - "pub_key_hash": "G7EBE41G3yv2JJJGPzw6HQr6hqzaNtythGJD4Af97fec"
}
], - "unminted_nfts": [
- {
- "name": "God Particle #3123",
}
], - "all_nfts": [
- {
- "name": "God Particle #3123",
}
]
}
See examples (Python, JavaScript).
Use this endpoint to get metadata about a Metaplex candy machine. This includes the goLiveDate, itemsAvailable, and itemsRedeemed. To see what is included, expand the green successful response below.
NOTE: Supply exactly one of candy_machine_id
, config_address
, or uuid
. If you provide more than one, you will receive a 400
error.
Cost: 2 Credits
(See Pricing)
candy_machine_id | string The ID of the candy machine. This is the same as |
config_address | string The configuration address of the candy machine. This is the same as |
uuid | string The uuid of the candy machine. This is an alphanumeric string of length six (e.g., HpVdfP), which corresponds to the first six characters of the config_address. |
network | string Default: "devnet" Enum: "devnet" "mainnet-beta" |
candy_machine_contract_version | string Default: "v1" Enum: "v1" "v2" The candy machine contract of the candy machine for which you are retrieving the metadata. If you are providing |
{- "candy_machine_id": "FmkrvXRenCGtwBHw3VtBcExp8eTdnau97upaewF4GUEX",
- "network": "mainnet-beta",
- "candy_machine_contract_version": "v1"
}
{- "authority": "5hybnoWHp7ruUizgKoxSviJrGfgBLLxzybZosQoHhK6C",
- "bump": 255,
- "creators": [
- {
- "address": "5hybnoWHp7ruUizgKoxSviJrGfgBLLxzybZosQoHhK6C",
- "share": 100
}
], - "candy_machine_id": "8BG7YY2tHagJz6xdYmXwHUNxaUKSzQyafr4Nsa2PmyeT",
- "config_address": "HpVdfPyqfTzVLprw9UdVH94QJeTB3HEdD1bFwxR46my6",
- "go_live_date": 4481031600,
- "is_mutable": true,
- "items_available": 3125,
- "items_redeemed": 125,
- "max_number_of_lines": 3125,
- "max_supply": 0,
- "price": 250000000,
- "retain_authority": true,
- "seller_fee_basis_points": 500,
- "symbol": "GP",
- "token_mint": null,
- "uuid": "HpVdfP",
- "wallet": "5hybnoWHp7ruUizgKoxSviJrGfgBLLxzybZosQoHhK6C"
}
See examples (Python, JavaScript).
Get the details of a transaction made on Solana.
Cost: 0.25 Credit
(See Pricing)
network required | string Example: mainnet-beta The network ID (devnet, mainnet-beta) |
tx_signature required | string Example: 5wHu1qwD7q5ifaN5nwdcDqNFo53GJqa7nLp2BeeEpcHCusb4GzARz4GjgzsEHMkBMgCJMGa6GSQ1VG96Exv8kt2W The transaction signature of the transaction |
{- "id": 1,
- "jsonrpc": "2.0",
- "result": {
- "block_time": 1634782875,
- "meta": {
- "err": { },
- "fee": 5000,
- "inner_instructions": [ ],
- "log_messages": [
- "Program 11111111111111111111111111111111 invoke [1]",
- "Program 11111111111111111111111111111111 success"
], - "post_balances": [
- 1263499110,
- 10000000,
- 1
], - "post_token_balances": [ ],
- "pre_balances": [
- 1273504110,
- 0,
- 1
], - "pre_token_balances": [ ],
- "rewards": [ ],
- "status": {
- "_ok": { }
}
}, - "slot": 102654672,
- "transaction": {
- "message": null,
- "account_keys": [
- {
- "pubkey": {
- "_bn": "dee6a11fcc1dc31f0ed939f826fbade9c01c1a911e023cd6bd2cd9a089144a69"
}, - "signer": true,
- "writable": true
}, - {
- "pubkey": {
- "_bn": "1dcd39962ad5410c1996873e23c4e9af189bcca84b0c24fd2ff1865a3382c288"
}, - "signer": false,
- "writable": true
}, - {
- "pubkey": {
- "_bn": "00"
}, - "signer": false,
- "writable": false
}
], - "instructions": [
- {
- "parsed": {
- "info": {
- "destination": "31LKs39pjT5oj6fWjC3F76dHWf9489asCthmgj8wu7pj",
- "lamports": 10000000,
- "source": "G17UmNGnMJ851x3M1JXocgpft1afcYedjPuFpo1ohhCk"
}, - "type": "transfer"
}, - "program": "system",
- "program_id": {
- "_bn": "00"
}
}
], - "recent_blockhash": "B4HW8uQT3VddawYKhsoHbhSYYARfWFCxJwaoAZBYBo1Y",
- "signatures": [
- "5MB3KY9Dps7Z9E9gJNykfaDHD8cwgxXhszxoeXEdcpUqsLm4BMjpwKWRKr4ojGg7s7wfpLwEPXLACZxhzAFBg4nz"
]
}
}
}
See examples (Python, JavaScript).
Get the details of an account on Solana. Learn more about accounts here.
Cost: 0.25 Credit
(See Pricing)
network required | string Example: mainnet-beta The network ID (devnet, mainnet-beta) |
public_key required | string Example: EEr5yQpNXf7Bru6Rt5podx56HGW9CEehXqgRGh2wa71w The public key of the account |
{- "context": {
- "slot": 108532393
}, - "value": {
- "data": {
- "parsed": {
- "info": {
- "decimals": 0,
- "freeze_authority": "HATCV2FuPkoN4S5PQqjk8vz17FTH9XFu7hymkCJo483V",
- "is_initialized": true,
- "mint_authority": "HATCV2FuPkoN4S5PQqjk8vz17FTH9XFu7hymkCJo483V",
- "supply": "1"
}, - "type": "mint"
}, - "program": "spl-token",
- "space": 82
}, - "executable": false,
- "lamports": 1461600,
- "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
- "rent_epoch": 250
}
}
See examples (Python, JavaScript).
Determine whether or not a public key is an NFT mint address
Cost: 0.5 Credit
(See Pricing)
network required | string Example: mainnet-beta The network ID (devnet, mainnet-beta) |
public_key required | string Example: EEr5yQpNXf7Bru6Rt5podx56HGW9CEehXqgRGh2wa71w The public key of the account |
{- "is_nft": true
}
See examples (Python, JavaScript).
Determine whether or not a public key address corresponds to a candy machine ID or candy machine configuration.
Cost: 1 Credit
(See Pricing)
network required | string Example: mainnet-beta The network ID (devnet, mainnet-beta) |
public_key required | string Example: EEr5yQpNXf7Bru6Rt5podx56HGW9CEehXqgRGh2wa71w The public key of the account |
{- "is_candy_machine": true,
- "candy_machine_contract_version": "v1"
}
See examples (Python, JavaScript).
Retrieves basic information about an SPL token given its mint_address
.
You can see the mint addresses of popular SPL tokens here.
Some example mint addresses of SPL tokens:
Cost: 1 Credit
(See Pricing)
public_key required | string Example: MangoCzJ36AjZyKwVj3VnYU4GTonjfVEnJmvvWaxLac The public key of the token |
network required | string Example: mainnet-beta The network ID (devnet, mainnet-beta) |
{- "decimals": 6,
- "freeze_authority": "3sNBr7kMccME5D55xNgsmYpZnzPgP2g12CixAajXypn6",
- "is_initialized": true,
- "mint_authority": "2wmVCSfPxGPjrnMMn7rchp4uaeoTqN39mXFC2zhPdri9",
- "supply": "4785000018865782"
}
This section documents our Quicknode add-on RPC methods for Solana NFTs. We have not yet published this, but will include a URL to Quicknode's website here once published. These methods do not yet support cNFT/pNFTs.
Get the full history of an NFT, all the way up until mint.
The endpoint returns a list of events, from mint until present moment, that correspond to transactions that interacted with the NFT.
Each event is a dictionary containing basic information about the event (e.g., account_blockchain_identifier
, account_type
, block_time
, chain
, succeeded
), the event
itself, the previous state of the NFT (pre_state
), and the resulting state of the NFT (post_state
).
pNFTs and cNFTs are not yet supported. To request support, reach out.
To see more, expand the "200 Successful Response" box below.
jsonrpc | string |
method | string |
Array of items = 1 items An array where the first and only item must be the mint address of the NFT | |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_NFTHistory",
- "params": [
- "4zH3Rwm1QXdfTSUqsYmeUBY4QqQmQEXJVbv4ErSK736Q"
], - "id": 1
}
[- {
- "chain": "solana",
- "accountBlockchainIdentifier": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC",
- "accountType": "nft_mint",
- "blockTime": 1661603488,
- "succeeded": true,
- "event": {
- "transactionBlockchainIdentifier": "4fTG8NwEUmwSyZ8ANN1NgaPrrtFXzAwztNgCFUPnPPVbNzHGTCbq3YJ386fTpQiwDg1vfdB7492yoya4SCqMXve",
- "primaryEventGroup": "nft_mint_nft",
- "primaryEventContext": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "price": null,
- "creditor": null,
- "buyer": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "sender": "nul",
- "receiver": null
}, - "primaryEventData": { },
- "primaryContract": {
- "contractBlockchainIdentifier": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s",
- "contractId": "metaplex/v1/standard_program",
- "contractName": "Metaplex: Standard Program",
- "contractType": "standard_program",
- "organizationId": "metaplex",
- "organizationName": "Metaplex"
}
}, - "preState": null,
- "postState": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": null,
- "price": null,
- "state": "holding"
}
}, - {
- "chain": "solana",
- "accountBlockchainIdentifier": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC",
- "accountType": "nft_mint",
- "blockTime": 1661627680,
- "succeeded": true,
- "event": {
- "transactionBlockchainIdentifier": "5RXLtAjDqcEAMunrrQbA2wZr2H6YDTGFkZ2HrkVs5Jy8GsZH26tVLzESVSJLojZJXE73bptVLLbghDb7ftL2ZoJ3",
- "primaryEventGroup": "nft_create_auction",
- "primaryEventContext": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "price": 2000000000,
- "creditor": null,
- "buyer": null,
- "sender": null,
- "receiver": null
}, - "primaryEventData": {
- "startTimestamp": 1661627671,
- "endTimestamp": 1661714071,
- "price": 2000000000
}, - "primaryContract": {
- "contractBlockchainIdentifier": "exAuvFHqXXbiLrM4ce9m1icwuSyXytRnfBkajukDFuB",
- "contractId": "exchange-art/v1/nft_auction",
- "contractName": "Exchange.Art: NFT Auction",
- "contractType": "nft_auction",
- "organizationId": "exchange-art",
- "organizationName": "Exchange.Art"
}
}, - "preState": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": null,
- "price": null,
- "state": "holding"
}, - "postState": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": {
- "contractBlockchainIdentifier": "exAuvFHqXXbiLrM4ce9m1icwuSyXytRnfBkajukDFuB",
- "contractId": "exchange-art/v1/nft_auction",
- "contractName": "Exchange.Art: NFT Auction",
- "contractType": "nft_auction",
- "organizationId": "exchange-art",
- "organizationName": "Exchange.Art"
}, - "price": 2000000000,
- "state": "auctioning"
}
}
]
Retrieves the listing price, if any, of the NFT. If the NFT is not listed for sale, the response will be null
.
pNFTs and cNFTs are not yet supported. To request support, reach out.
To see more, expand the "200 Successful Response" box below.
jsonrpc | string |
method | string |
Array of items = 1 items An array where the first and only item must be the mint address of the NFT | |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_NFTListingPrice",
- "params": [
- "4zH3Rwm1QXdfTSUqsYmeUBY4QqQmQEXJVbv4ErSK736Q"
], - "id": 1
}
{- "priceLamports": 1000000000
}
Retrieves the literal owner of an NFT. This refers to the address that is designated as having a balance of 1 for the NFT's mint address, but it is not necessarily the wallet with authority over the NFT. For example, this address could be a program derived address (PDA), which is a program account that is derived from a seed and is owned by the program. To retrieve the true owner, use the true owner endpoint.
pNFTs and cNFTs are not yet supported. To request support, reach out.
To see more, expand the "200 Successful Response" box below.
jsonrpc | string |
method | string |
Array of items = 1 items An array where the first and only item must be the mint address of the NFT | |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_NFTLiteralOwner",
- "params": [
- "4zH3Rwm1QXdfTSUqsYmeUBY4QqQmQEXJVbv4ErSK736Q"
], - "id": 1
}
{- "literalOwner": "7YMM3S3HjCy1128r8e3c2BBpWANK7rzN3TR3jNTKQPpA"
}
Retrieve the metadata of an NFT.
pNFTs and cNFTs are not yet supported. To request support, reach out.
To see more, expand the "200 Successful Response" box below.
jsonrpc | string |
method | string |
Array of items = 1 items An array where the first and only item must be the mint address of the NFT | |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_NFTMetadata",
- "params": [
- "4zH3Rwm1QXdfTSUqsYmeUBY4QqQmQEXJVbv4ErSK736Q"
], - "id": 1
}
{- "confirmed": true,
- "data": {
- "creators": [
- "HuAiZg55P557gdjr5jkq79YdMe9sbdHuPj5UN21XuSyK",
- "5FzddvKbxE54KEg2WoeNiGWJYAUBabKVFg2MVCSacWiJ"
], - "name": "Vox Punks Club #966",
- "sellerFeeBasisPoints": 500,
- "share": [
- 0,
- 100
], - "symbol": "",
- "verified": [
- 1,
- 1
]
}, - "isMutable": true,
- "mint": "EEr5yQpNXf7Bru6Rt5podx56HGW9CEehXqgRGh2wa71w",
- "primarySaleHappened": true,
- "updateAuthority": "5FzddvKbxE54KEg2WoeNiGWJYAUBabKVFg2MVCSacWiJ",
- "metadataAccount": "HTu4wUU4WxL48AdQM3nQuHeY8iAqgV9aKwbes4P6Y1c4",
- "editionNonce": 255,
- "tokenStandard": 0,
- "collection": {
- "verified": 0,
- "key": "11111111111111111111111111111111"
}, - "uses": 0
}
Retrieves the current state of the NFT.
pNFTs and cNFTs are not yet supported. To request support, reach out.
To see more, expand the "200 Successful Response" box below.
jsonrpc | string |
method | string |
Array of items = 1 items An array where the first and only item must be the mint address of the NFT | |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_NFTState",
- "params": [
- "4zH3Rwm1QXdfTSUqsYmeUBY4QqQmQEXJVbv4ErSK736Q"
], - "id": 1
}
{- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": null,
- "price": null,
- "state": "holding"
}
This endpoint retrieves the true owner of an NFT. The true owner is the owner of the NFT's mint account, who has authorization to transfer it and make other transactions with it.
This is useful for NFTs that have been transferred to a program account, such as a marketplace. The literal owner in this case, would be the marketplace or PDA, but this address does not represent the wallet that has authority over the NFT.
pNFTs and cNFTs are not yet supported. To request support, reach out.
To see more, expand the "200 Successful Response" box below.
jsonrpc | string |
method | string |
Array of items = 1 items An array where the first and only item must be the mint address of the NFT | |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_NFTTrueOwner",
- "params": [
- "4zH3Rwm1QXdfTSUqsYmeUBY4QqQmQEXJVbv4ErSK736Q"
], - "id": 1
}
{- "trueOwner": "7YMM3S3HjCy1128r8e3c2BBpWANK7rzN3TR3jNTKQPpA",
- "ownedSince": 1705946023,
- "ownershipTransactionId": "2U1MLuqwaMVH4Bfa7N1g1DmT38ysmZBkPvdeK2JbbEE6Ae4nYY8DBgN2jEp69s7FTpigVkkW1jumRYHHpxXTfcGX"
}
Retrieves the NFTs owned by the wallet.
This retrieves NFTs based on the literal owner
, not the true owner
(see the difference above for the bca_NFTLiteralOwner
and bca_NFTTrueOwner
methods). For example, if a user has an NFT listed on a custodial marketplace, the literal owner
would be the custodial marketplace, while the true owner
would be the user. This endpoint would therefore not include that NFT.
This endpoint also does not consider cNFTs or pNFTs.
For support for true owner, cNFTs, and pNFTs, please reach out.
jsonrpc | string |
method | string |
Array of items = 1 items An array where the first and only item is a wallet address | |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_WalletNFTs",
- "params": [
- "APipLFSda8yjUaSMk69m8yA1KT6RE5MR1Ltso4ciirzW"
], - "id": 1
}
{- "mintAddresses": [
- "3BaSSc4q85andNFmpSMZabkKh6wh4HXyzdNENdPfTidM",
- "BDzkdi6AcxGo8z6GaydxJhn921z9LcjzXnvVDAMwznfs",
- "HxgctEwnZABYirZU2j65ogCaWQfPQje3y8mbcoV2EREA",
- "3cGuLufhXdz3tRsCeDogExjfbX1AzF3P766kUN3ZZVEJ",
- "4fwF8JXevny5GaiVors5hnkT9Q4A7UUUFLh6mmHonrjs",
- "6K33MkoZUCPmhCPT5FxFKtsKbGibbMJa5rFqSfn6G37e"
]
}
Subscribe to accounts to receive updates on transactions interacting with them. These updates are pushed to a subscription queue, from which you can read and delete items. Only accounts that are NFTs are supported.
pNFTs and cNFTs are not yet supported. To request support, reach out.
jsonrpc | string |
method | string |
Array of items = 1 items An array where the first and only item must be another array of the accounts you want to subscribe to | |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_Track_AccountSubscribe",
- "params": [
- [
- "4zH3Rwm1QXdfTSUqsYmeUBY4QqQmQEXJVbv4ErSK736Q",
- "7GNEUsSZDPYYDrr8hdnzsrb4WUVSUrYPVuGMFduxAcCW"
]
], - "id": 1
}
Unsubscribe from the specified accounts. You will no longer receive events for such accounts after calling this method.
jsonrpc | string |
method | string |
Array of items = 1 items An array where the first and only item must be another array of the accounts you want to unsubscribe from | |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_Track_AccountSubscribe",
- "params": [
- [
- "4zH3Rwm1QXdfTSUqsYmeUBY4QqQmQEXJVbv4ErSK736Q",
- "7GNEUsSZDPYYDrr8hdnzsrb4WUVSUrYPVuGMFduxAcCW"
]
], - "id": 1
}
List the accounts to which you are subscribed.
jsonrpc | string |
method | string |
params | Array of arrays = 0 items No parameters are required for this method. |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_Track_ListSubscriptions",
- "params": [ ],
- "id": 1
}
{- "subscriptions": [
- {
- "accountType": "nft_mint",
- "blockchainIdentifier": "11qX5jRL6PSyi2YnXb9S4Mbc6axL7r66VsP4kZ6Xi9v",
- "chain": "solana",
- "network": "mainnet-beta",
- "lastUpdated": 1661603488
}
]
}
Pull all items in the queue. You receive events in the queue when a new transaction involves an account to which you're subscribed.
Events expire after one day and are automatically removed from the queue.
You can specify whether to return the entire queue or approximately 10-50 elements from the queue.
jsonrpc | string |
method | string |
Array of items = 1 items An array where the first and only item must be a boolean indicating whether to pull the entire queue or partially pull it. | |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_Track_PullQueue",
- "params": [
- true
], - "id": 1
}
[- {
- "chain": "solana",
- "accountBlockchainIdentifier": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC",
- "accountType": "nft_mint",
- "blockTime": 1661603488,
- "succeeded": true,
- "eventId": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC_4fTG8NwEUmwSyZ8ANN1NgaPrrtFXzAwztNgCFUPnPPVbNzHGTCbq3YJ386fTpQiwDg1vfdB7492yoya4SCqMXve_solana_mainnet-beta",
- "event": {
- "transactionBlockchainIdentifier": "4fTG8NwEUmwSyZ8ANN1NgaPrrtFXzAwztNgCFUPnPPVbNzHGTCbq3YJ386fTpQiwDg1vfdB7492yoya4SCqMXve",
- "primaryEventGroup": "nft_mint_nft",
- "primaryEventContext": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "price": null,
- "creditor": null,
- "buyer": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "sender": "nul",
- "receiver": null
}, - "primaryEventData": { },
- "primaryContract": {
- "contractBlockchainIdentifier": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s",
- "contractId": "metaplex/v1/standard_program",
- "contractName": "Metaplex: Standard Program",
- "contractType": "standard_program",
- "organizationId": "metaplex",
- "organizationName": "Metaplex"
}
}, - "preState": null,
- "postState": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": null,
- "price": null,
- "state": "holding"
}
}, - {
- "chain": "solana",
- "accountBlockchainIdentifier": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC",
- "accountType": "nft_mint",
- "blockTime": 1661627680,
- "succeeded": true,
- "eventId": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC_5RXLtAjDqcEAMunrrQbA2wZr2H6YDTGFkZ2HrkVs5Jy8GsZH26tVLzESVSJLojZJXE73bptVLLbghDb7ftL2ZoJ3_solana_mainnet-beta",
- "event": {
- "transactionBlockchainIdentifier": "5RXLtAjDqcEAMunrrQbA2wZr2H6YDTGFkZ2HrkVs5Jy8GsZH26tVLzESVSJLojZJXE73bptVLLbghDb7ftL2ZoJ3",
- "primaryEventGroup": "nft_create_auction",
- "primaryEventContext": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "price": 2000000000,
- "creditor": null,
- "buyer": null,
- "sender": null,
- "receiver": null
}, - "primaryEventData": {
- "startTimestamp": 1661627671,
- "endTimestamp": 1661714071,
- "price": 2000000000
}, - "primaryContract": {
- "contractBlockchainIdentifier": "exAuvFHqXXbiLrM4ce9m1icwuSyXytRnfBkajukDFuB",
- "contractId": "exchange-art/v1/nft_auction",
- "contractName": "Exchange.Art: NFT Auction",
- "contractType": "nft_auction",
- "organizationId": "exchange-art",
- "organizationName": "Exchange.Art"
}
}, - "preState": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": null,
- "price": null,
- "state": "holding"
}, - "postState": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": {
- "contractBlockchainIdentifier": "exAuvFHqXXbiLrM4ce9m1icwuSyXytRnfBkajukDFuB",
- "contractId": "exchange-art/v1/nft_auction",
- "contractName": "Exchange.Art: NFT Auction",
- "contractType": "nft_auction",
- "organizationId": "exchange-art",
- "organizationName": "Exchange.Art"
}, - "price": 2000000000,
- "state": "auctioning"
}
}
]
Remove the specified events from the queue.
jsonrpc | string |
method | string |
Array of items = 1 items An array where the first and only item must be another array of the event IDs representing the events you want to delete from the queue | |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_Track_DeleteFromQueue",
- "params": [
- [
- "HujQhNgm2SmkmVTa8QyviuXq4USJ5oi1y38H3JMNdFuq_3dfLecmRtY4pFJ6nStq8xKmoCP84VtzQEd6AFrg23d5mXEK76QpoVEauHcx3zvU57yRu4YM7ZgUiaNXJATqVmFLd_solana_mainnet-beta"
]
], - "id": 1
}
List the accounts to which you are subscribed.
jsonrpc | string |
method | string |
params | Array of arrays = 0 items No parameters are required for this method. |
id | integer |
{- "jsonrpc": "2.0",
- "method": "bca_Track_PurgeQueue",
- "params": [ ],
- "id": 1
}
See examples (Python, JavaScript).
Use this endpoint to securely and randomly generate a seed phrase for a wallet.
Cost: 0 Credit
(Free) (See Pricing)
blockchain required | string Enum: "avalanche" "binance_smart_chain" "ethereum" "near" "solana" The blockchain you want to use |
n_words | number The number of words to generate. Must be one of: 12, 15, 18, 21, or 24. Avalanche's default is 24. All other chains we support default to 12. |
{- "n_words": 12
}
{- "secret_recovery_phrase": "fire owner display success half rescue pledge oval foam gossip window once"
}
See examples (Python, JavaScript).
Use this endpoint to securely and randomly generate a private key for a wallet.
Cost: 0 Credit
(Free) (See Pricing)
blockchain required | string Enum: "avalanche" "binance_smart_chain" "ethereum" "near" "solana" The blockchain you want to use |
{- "hex_private_key": "0x200b9e5baa38b0dc7551645be11b394e9bf2b04532e4af8824bed2b3de2e0dc0"
}
See examples (Python, JavaScript).
Use this endpoint to securely derive a private key for a wallet.
For example, if you have a seed phrase and want to derive the corresponding private key, use this endpoint.
Cost: 0 Credit
(Free) (See Pricing)
blockchain required | string Enum: "avalanche" "binance_smart_chain" "ethereum" "near" "solana" The blockchain you want to use |
required | GeneralSecretRecoveryPhrase (object) or HexPrivateKey (object) or GeneralPrivateKey (object) or GeneralB58PrivateKey (object) (GeneralWallet) The wallet authentication information used to sign and submit the transaction. Click the |
{- "wallet": {
- "secret_recovery_phrase": "fire owner display success half rescue pledge oval foam gossip window once",
- "derivation_path": "m/44/501/0/0",
- "passphrase": "water"
}
}
{- "hex_private_key": "0x200b9e5baa38b0dc7551645be11b394e9bf2b04532e4af8824bed2b3de2e0dc0"
}
See examples (Python, JavaScript).
Derive the identifier for a wallet.
Cost: 0 Credit
(Free) (See Pricing)
blockchain required | string Enum: "avalanche" "binance_smart_chain" "ethereum" "near" "solana" The blockchain you want to use |
required | GeneralSecretRecoveryPhrase (object) or HexPrivateKey (object) or GeneralPrivateKey (object) or GeneralB58PrivateKey (object) (GeneralWallet) The wallet authentication information used to sign and submit the transaction. Click the |
{- "wallet": {
- "secret_recovery_phrase": "fire owner display success half rescue pledge oval foam gossip window once",
- "derivation_path": "m/44/501/0/0",
- "passphrase": "water"
}
}
{- "hex_public_address": "0xB2b2d42C3adA171633E36b427F062f85A642F453",
- "hex_public_key": "0x0f7182c2c2f79aca13847bed68c67662c021df868ee5d20a78df6095e4cd162610c63ec9050989a3755a18255cdd707e50678bfd762db3f0feea647610e974c4"
}
See examples (Python, JavaScript).
See the balance of a wallet in the native blockchain currency (e.g., ETH, SOL) or any token (e.g., ERC-20, NFTs, SPL, etc.).
To get the balance of a specific token, supply the token_blockchain_identifier
of the token.
You can also use this endpoint to see whether or not a person owns an NFT. Just supply the token_blockchain_identifier
of the NFT. A balance of "1" means the person owns the NFT, and a balance of "0" means the person does not own the NFT.
Cost: 0.25 Credit
(See Pricing)
blockchain required | string Enum: "ethereum" "solana" The blockchain you want to use |
blockchain_identifier | string The address / public key of the wallet you're querying. Examples:
|
unit | string The Applicable units:
|
network | string The network of the blockchain you selected
Defaults when not provided (not applicable to path parameters):
|
token_blockchain_identifier | string Default: null The
Examples:
|
{- "blockchain_identifier": "GKNcUmNacSJo4S2Kq3DuYRYRGw3sNUfJ4tyqd198t6vQ",
- "network": "mainnet-beta",
- "token_blockchain_identifier": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}
{- "balance": 3.322105,
- "decimals": 6,
- "integer_balance": 3322105,
- "network": "mainnet-beta"
}
See examples (Python, JavaScript).
Cost: 0 Credit
(Free) (See Pricing)
blockchain required | string Enum: "ethereum" "solana" The blockchain you want to use |
recipient_blockchain_identifier required | string The address/public key to which to send the airdrop. Examples:
|
{- "recipient_blockchain_identifier": "GKNcUmNacSJo4S2Kq3DuYRYRGw3sNUfJ4tyqd198t6vQ"
}
{- "transaction_blockchain_identifier": "38jivwh89t38hkN4dS2M585NZFRHbsGfmnuFb2MVDwrfTXdvYBamQPRo7QQNGdx8mfYahfkUV6s822nH3K7ej5nj",
- "transaction_confirmed": true
}
See transfer ETH/SOL/crypto example (Python, JavaScript).
See transfer NFT/token example (Python, JavaScript).
This is a powerful function. It might be slightly confusing because there are several optional parameters, so take some time to review it.
This function can send
You can sign and submit the transaction for confirmation; and you can select to simply return the compiled transaction so that you can submit it to the user for signing (e.g., via Phantom or Metamask; no private keys required in this case).
If you're transferring an NFT or a token, supply its respective token_blockchain_identifier
.
SENDER: Note that the wallet information is used to authorize the sending of the tokens and identifies the source of the tokens. If return_compiled_transaction = false
, we sign and submit the transaction (wallet
is required in this case; do not provide a value for sender_blockchain_identifier
). If return_compiled_transaction = true
, we compile the transaction (sender_blockchain_identifier
is required in this case; do not provide wallet
).
RECIPIENT: recipient_blockchain_identifier
identifies the receiver. This is entirely separate from the information used for the SENDER above. So, in this API call, there are two wallets involved, but only one (namely, the SENDER) is needed to authorize the transaction (if you want us to sign and submitting it).
FEE_PAYER (Solana only): The fee payer of the transaction defaults to wallet
(or sender_blockchain_identifier
). To set a different fee payer, provide a value for fee_payer_wallet
.
Cost: 2 Credit
(See Pricing)
blockchain required | string Enum: "ethereum" "solana" The blockchain you want to use |
recipient_blockchain_identifier required | string The blockchain identifier of the recipient to whom you want to send a token or NFT. On Ethereum, this is the hex public address of the recipient (e.g., On Solana, this is the public key of the recipient (e.g., |
GeneralSecretRecoveryPhrase (object) or HexPrivateKey (object) or GeneralPrivateKey (object) or GeneralB58PrivateKey (object) (GeneralWallet) The wallet authentication information used to sign and submit the transaction. Click the | |
token_blockchain_identifier | string The
Examples:
|
network | string The network of the blockchain you selected
Defaults when not provided (not applicable to path parameters):
|
amount | string Default: "1" This value must be a string. What you provide here depends on if you are sending an NFT, an SPL token, or SOL.
|
return_compiled_transaction | boolean Default: false
|
sender_blockchain_identifier | string Default: null To understand the purpose of
When you provide your When you are not providing your You will receive an error if you provide both |
GeneralSecretRecoveryPhrase (object) or HexPrivateKey (object) or GeneralPrivateKey (object) or GeneralB58PrivateKey (object) (GeneralFeePayerWallet) This feature is only supported for If you do NOT provide a wallet here, the fee payer of the transaction will be the If you do provide a wallet, then the |
{- "wallet": {
- "secret_recovery_phrase": "fire owner display success half rescue pledge oval foam gossip window once"
}, - "token_blockchain_identifier": "CK1LHEANTu7RFqN3XMzo2AnZhyus2W1vue1njrxLEM1d"
}
{- "transaction_blockchain_identifier": "38jivwh89t38hkN4dS2M585NZFRHbsGfmnuFb2MVDwrfTXdvYBamQPRo7QQNGdx8mfYahfkUV6s822nH3K7ej5nj",
- "transaction_confirmed": true
}
See examples (Python, JavaScript).
Get the details of a transaction made on the specified blockchain.
Cost: 0.25 Credit
(See Pricing)
blockchain required | string Enum: "ethereum" "solana" The blockchain you want to use |
network required | string Example: ropsten The network of the blockchain you selected
Defaults when not provided (not applicable to path parameters):
|
transaction_blockchain_identifier required | string Example: 0x5f36b787daa57bfe8568d69e24eae54ccb00720c6edfc826bd4a7b19c525eef4 The transaction signature of the transaction. Examples:
|
{- "access_list": [ ],
- "block_hash": "0x8d8880edf38aaf197c12418154e3ca8e0f41e68810f6c17e58b35e4cf107c1e7",
- "block_number": "0xe23e90",
- "chain_id": "0x1",
- "from": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
- "gas": "0x18a78",
- "gas_price": "0x5eabd7e14",
- "hash": "0xc28efff0334292eaac09fa611eba7e721970eb7a7b7dc3dd411a521869ec9810",
- "input": "0x6a761202000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000007364c516a0e6e784733e5700617ec99b174ffc710000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082cea0ebf9aa3df7daf8509150ff0366878a6110d1107858eec076d210d5ba45197845be2ce0b89444307bc85e16609bf3ef4adb1ea941ac4070f4be8b3c1018ce1c000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000",
- "max_fee_per_gas": "0x746a528800",
- "max_priority_fee_per_gas": "0x77359400",
- "nonce": "0x31f",
- "r": "0xc22d414961cfadb11943c16326b5e8bd29620ef5e764cfa8ef6f4a31509f9751",
- "s": "0x190e71ef0bcb26e01f982ded821aeec4ff5548a4edd4648a7336fb5e2ea06dec",
- "to": "0xa06c2b67e7435ce25a5969e49983ec3304d8e787",
- "transaction_index": "0x3b",
- "type": "0x2",
- "v": "0x0",
- "value": "0x0"
}
See examples (Python, JavaScript) [Coming Soon].
Get the blockchain identifier from a name.
e.g., Input vitalik.eth
and output 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
Cost: 0.25 Credit
(See Pricing)
blockchain required | string Enum: "ethereum" "solana" The blockchain you want to use |
network required | string Example: ropsten The network of the blockchain you selected
Defaults when not provided (not applicable to path parameters):
|
name | string |
{- "name": "vitalik.eth"
}
{- "blockchain_identifier": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
See examples (Python, JavaScript) [Coming Soon].
Get the name from a blockchain identifier.
e.g., Input 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
and output vitalik.eth
Cost: 0.25 Credit
(See Pricing)
blockchain required | string Enum: "ethereum" "solana" The blockchain you want to use |
network required | string Example: ropsten The network of the blockchain you selected
Defaults when not provided (not applicable to path parameters):
|
blockchain_identifier | string |
{- "blockchain_identifier": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
{- "name": "vitalik.eth"
}
Subscribe to accounts to receive updates on transactions interacting with them. These updates are pushed to a subscription queue, from which you can read and delete items.
This currently only works for tracking NFTs. Events that are tracked include purchases, sales, call/put options, raffling, etc. etc. You can see the full list in the Pull Queue Endpoint > 200 Response Expanded > Event.
Array of objects (Subscription) List of subscriptions |
{- "subscriptions": [
- {
- "account_type": "nft_mint",
- "blockchain_identifier": "11qX5jRL6PSyi2YnXb9S4Mbc6axL7r66VsP4kZ6Xi9v",
- "chain": "solana",
- "network": "mainnet-beta"
}
]
}
List the accounts to which you are subscribed.
{- "subscriptions": [
- {
- "account_type": "nft_mint",
- "blockchain_identifier": "11qX5jRL6PSyi2YnXb9S4Mbc6axL7r66VsP4kZ6Xi9v",
- "chain": "solana",
- "network": "mainnet-beta"
}
]
}
Unsubscribe from the specified accounts. You will no longer receive events for such accounts after calling this method.
Array of objects (Subscription) List of subscriptions |
{- "subscriptions": [
- {
- "account_type": "nft_mint",
- "blockchain_identifier": "11qX5jRL6PSyi2YnXb9S4Mbc6axL7r66VsP4kZ6Xi9v",
- "chain": "solana",
- "network": "mainnet-beta"
}
]
}
Pull all items in the queue. You receive events in the queue when a new transaction involves an account to which you're subscribed.
Events expire after one day and are automatically removed from the queue.
return_entire_queue required | boolean Whether to return the entire queue or approximately 10-50 elements from the queue |
network | any The network of the chain you want to run on (e.g., |
chain | any The chain (e.g., |
[- {
- "chain": "solana",
- "account_blockchain_identifier": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC",
- "account_type": "nft_mint",
- "block_time": 1661603488,
- "succeeded": true,
- "event_id": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC_4fTG8NwEUmwSyZ8ANN1NgaPrrtFXzAwztNgCFUPnPPVbNzHGTCbq3YJ386fTpQiwDg1vfdB7492yoya4SCqMXve_solana_mainnet-beta",
- "event": {
- "transaction_blockchain_identifier": "4fTG8NwEUmwSyZ8ANN1NgaPrrtFXzAwztNgCFUPnPPVbNzHGTCbq3YJ386fTpQiwDg1vfdB7492yoya4SCqMXve",
- "primary_event_group": "nft_mint_nft",
- "primary_event_context": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "price": null,
- "creditor": null,
- "buyer": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "sender": "nul",
- "receiver": null
}, - "primary_event_data": { },
- "primary_contract": {
- "contract_blockchain_identifier": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s",
- "contract_id": "metaplex/v1/standard_program",
- "contract_name": "Metaplex: Standard Program",
- "contract_type": "standard_program",
- "organization_id": "metaplex",
- "organization__name": "Metaplex"
}
}, - "pre_state": null,
- "post_state": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": null,
- "price": null,
- "state": "holding"
}
}, - {
- "chain": "solana",
- "account_blockchain_identifier": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC",
- "account_type": "nft_mint",
- "block_time": 1661627680,
- "succeeded": true,
- "event_id": "85dqcCUB54YKTpzLczPrByEshAYUVzyBPGBfVvo8hTAC_5RXLtAjDqcEAMunrrQbA2wZr2H6YDTGFkZ2HrkVs5Jy8GsZH26tVLzESVSJLojZJXE73bptVLLbghDb7ftL2ZoJ3_solana_mainnet-beta",
- "event": {
- "transaction_blockchain_identifier": "5RXLtAjDqcEAMunrrQbA2wZr2H6YDTGFkZ2HrkVs5Jy8GsZH26tVLzESVSJLojZJXE73bptVLLbghDb7ftL2ZoJ3",
- "primary_event_group": "nft_create_auction",
- "primary_event_context": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "price": 2000000000,
- "creditor": null,
- "buyer": null,
- "sender": null,
- "receiver": null
}, - "primary_event_data": {
- "start_timestamp": 1661627671,
- "end_timestamp": 1661714071,
- "price": 2000000000
}, - "primary_contract": {
- "contract_blockchain_identifier": "exAuvFHqXXbiLrM4ce9m1icwuSyXytRnfBkajukDFuB",
- "contract_id": "exchange-art/v1/nft_auction",
- "contract_name": "Exchange.Art: NFT Auction",
- "contract_type": "nft_auction",
- "organization_id": "exchange-art",
- "organization__name": "Exchange.Art"
}
}, - "pre_state": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": null,
- "price": null,
- "state": "holding"
}, - "post_state": {
- "owner": "4XxUMB5MSwuV14p9EUDDA2Jg5CPZgy4dNB6PEPxWGtWs",
- "contract": {
- "contract_blockchain_identifier": "exAuvFHqXXbiLrM4ce9m1icwuSyXytRnfBkajukDFuB",
- "contract_id": "exchange-art/v1/nft_auction",
- "contract_name": "Exchange.Art: NFT Auction",
- "contract_type": "nft_auction",
- "organization_id": "exchange-art",
- "organization__name": "Exchange.Art"
}, - "price": 2000000000,
- "state": "auctioning"
}
}
]
Remove the specified events from the queue.
events | Array of strings A list of |
{- "events": [
- "string"
]
}
See examples (Python, JavaScript) [Coming Soon].
Get the metadata of a token.
Cost: 0.25 Credit
(See Pricing)
blockchain required | string Enum: "ethereum" "solana" The blockchain you want to use |
network required | string Example: ropsten The network of the blockchain you selected
Defaults when not provided (not applicable to path parameters):
|
token_blockchain_identifier required | string Enum: "ethereum" "solana" The identifier of the token (e.g., |
{- "symbol": "USDC",
- "name": "USD Coin",
- "decimals": 9,
- "minter_blockchain_identifier": null,
- "total_supply": 1273041820
}
blockchain required | string Value: "solana" The blockchain you want to use |
network required | string Example: ropsten The network of the blockchain you selected
Defaults when not provided (not applicable to path parameters):
|
[- {
- "symbol": "USDC",
- "name": "USD Coin",
- "decimals": 9,
- "minter_blockchain_identifier": null,
- "total_supply": 1273041820
}
]