GET /metadata
Everything known about a coin in one read: name, symbol, decimals, supply, launchpad, quote mint and the live pool address; the image, description and socials from its metadata JSON; the creator and launch time; whether it graduated and where to; what the mint account says (token program, authorities, Token-2022 extensions and any transfer fee); and for a pump.fun coin its curve with the creator fee. Pass exactly one of mint or pool (passing both is fine; pool wins). Keyless.
| Method | GET |
| Auth | none needed; your plan's key raises the limits |
Example
- JavaScript
- Python
// Pass exactly one of `mint` or `pool`:
const params = new URLSearchParams({
mint: "26ttsGMZeMGv6rLAaYwvdtj4671wJJjc55UGNpTVLbRL",
// or: pool: "9EHowJR1dph68EGpHNA8SZbpbVYqD3kx5NLcYVWrCFUy"
});
const res = await fetch(`https://sol.shrine.trade/metadata?${params}`);
const meta = await res.json();
console.log(meta);
import requests
res = requests.get(
"https://sol.shrine.trade/metadata",
params={"mint": "26ttsGMZeMGv6rLAaYwvdtj4671wJJjc55UGNpTVLbRL"},
)
print(res.json())
Response
{
"pool": "9EHowJR1dph68EGpHNA8SZbpbVYqD3kx5NLcYVWrCFUy",
"mint": "26ttsGMZeMGv6rLAaYwvdtj4671wJJjc55UGNpTVLbRL",
"quote": "BMKdM4yUxX12moFqVk195k7coMbaybd4RUKCUdm7D1Sk",
"decimals": 6,
"program": "PUMPSWAP",
"total_supply": 1000000000,
"active": true,
"name": "Proof Of Quantum",
"symbol": "Quantum",
"uri": "https://metadata.j7tracker.io/m/Oq2myOORpA",
"image": "https://metadata.j7tracker.io/m/Oq2myOORpA-img",
"description": "",
"twitter": "https://x.com/POQuantum/status/2108240662265012379",
"telegram": "",
"website": "https://starkrdp.net/",
"metadata_fetched": true,
"creator": "9xLUBtnozQ3eosq61oSuKjKw9uLGLyybwEHZsMr2b8G",
"created_at": 1791478908,
"graduated": true,
"graduated_pool": "9EHowJR1dph68EGpHNA8SZbpbVYqD3kx5NLcYVWrCFUy",
"graduated_at": 1791479381,
"token_program": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",
"mint_authority": null,
"freeze_authority": null,
"token_extensions": ["metadataPointer", "tokenMetadata"],
"transfer_fee_bps": null,
"transfer_fee_max": null,
"pumpfun": {
"bonding_curve": "4FjdFepnY4DdqnUxLNkKrKEYEHhB6jSehKcXv9gBasNm",
"creator": "9xLUBtnozQ3eosq61oSuKjKw9uLGLyybwEHZsMr2b8G",
"quote_mint": "BMKdM4yUxX12moFqVk195k7coMbaybd4RUKCUdm7D1Sk",
"creator_fee_bps": 0,
"mayhem_mode": false,
"holder_reward": false,
"cashback": false,
"complete": true,
"virtual_token_reserves": 0,
"virtual_sol_reserves": 0,
"real_token_reserves": 0,
"real_sol_reserves": 0
}
}
| Field | Notes |
|---|---|
image, description, twitter, telegram, website | From the coin's metadata JSON behind uri, fetched once in the background right after the launch. metadata_fetched is false while that is still on its way (ask again a moment later); empty strings mean the JSON has no value. |
creator, created_at | The launching wallet and the launch time (unix seconds). |
graduated, graduated_pool, graduated_at | Whether the coin left its curve, where it trades now and when. |
token_program, mint_authority, freeze_authority, token_extensions | Read from the mint account. Both authorities should be null on an honest coin; token_extensions lists the Token-2022 extensions the mint carries. |
transfer_fee_bps, transfer_fee_max | The tax: a Token-2022 transfer fee in basis points and its cap in raw units, null when the mint has none. |
pumpfun | Only for pump.fun coins: the bonding curve, the creator fee in basis points, mayhem mode, holder rewards, cashback, whether the curve completed, and its reserves while it is live. null for other launchpads. |
Try it
Notes
programis one ofPUMPFUN,PUMPSWAP,METEORA,RAYDIUM,ORCA- useful for routing UI logic per DEX.active: falsemeans the pool has been superseded (e.g. PumpFun bonding curve migrated to PumpSwap). Usemintlookup to find the current active one./lookupis an alias for the same handler - same params, same cost.
LimitsFree 1 req/sLite 5 req/sDeveloper 20 req/sSee plans →