Supply
How to get DREMT max, issued and circulating supply from Solana RPC.
| Metric | Definition | Value |
|---|---|---|
| Max supply | On-chain cap stored in token_state 6Von4B5nPzo2tVNW5N5JGZXwKF37RDW3bjfeUepU83LR | 100,000,000,000 |
| Issued supply (total supply) | getTokenSupply on the mint | 10,002,384.876703 as of 5 November 2026 |
| Circulating supply | Issued supply minus the program treasury vault balance | 14,759.876703 as of 5 November 2026 |
The treasury vault DYSuvbzcD9kizqveKfvM9NeSyS96nSSzBmXprWHcRSSS holds the initial allocations that have not been released. It belongs to a keyless program PDA, so its balance is not circulating.
The figures above are a snapshot of Solana mainnet taken on 5 November 2026 (slot about 465,693,000). Use the calls below for live values.
Issued supply
bash
curl -s https://api.mainnet-beta.solana.com -H 'content-type: application/json' -d '{
"jsonrpc":"2.0","id":1,"method":"getTokenSupply",
"params":["AmUYmDAhxoD841aT44dNLVHRvnZ1zGe1uppZLFw5MSou"]
}'Treasury vault balance
bash
curl -s https://api.mainnet-beta.solana.com -H 'content-type: application/json' -d '{
"jsonrpc":"2.0","id":1,"method":"getTokenAccountBalance",
"params":["DYSuvbzcD9kizqveKfvM9NeSyS96nSSzBmXprWHcRSSS"]
}'Circulating supply
Subtract the treasury vault balance from the issued supply. Use the raw amount fields (base units, 6 decimals) so the result is exact. This Node 18+ script has no dependencies; set RPC_URL to use your own node:
js
// supply.mjs: prints DREMT issued / treasury / circulating supply
const RPC = process.env.RPC_URL || "https://api.mainnet-beta.solana.com";
const MINT = "AmUYmDAhxoD841aT44dNLVHRvnZ1zGe1uppZLFw5MSou";
const TREASURY = "DYSuvbzcD9kizqveKfvM9NeSyS96nSSzBmXprWHcRSSS";
const rpc = async (method, address) => {
const r = await fetch(RPC, {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ jsonrpc: "2.0", id: 1, method, params: [address, { commitment: "finalized" }] }),
});
const j = await r.json();
if (j.error) throw new Error(`${method}: ${j.error.message}`);
return BigInt(j.result.value.amount);
};
// base units -> decimal string, exact (no floating point)
const fmt = (units) => {
const s = units.toString().padStart(7, "0");
return (s.slice(0, -6) + "." + s.slice(-6)).replace(/\.?0+$/, "");
};
const [total, treasury] = await Promise.all([rpc("getTokenSupply", MINT), rpc("getTokenAccountBalance", TREASURY)]);
console.log(JSON.stringify({ total: fmt(total), treasury: fmt(treasury), circulating: fmt(total - treasury) }));bash
node supply.mjs
# {"total":"10002384.876703","treasury":"9987625","circulating":"14759.876703"}