Skip to main content

Elysium Balances & Token Holders API

Query wallet balances and token holders on Elysium with Bitquery GraphQL. Elysium (network: elysium, chain ID 99901) is Kinetiq's Layer 2 for the Hyperliquid ecosystem, with HYPE as the gas token. Balances returns what an address holds now, Holders ranks the addresses holding a token, and TransactionBalances shows the balance before and after each transaction.

API Key Required

To query or stream data outside the Bitquery IDE, you need an API access token.

Follow the steps here: How to generate Bitquery API token ➤


Portfolio of a wallet​

Every token and the native HYPE a wallet holds, with USD values, largest first.

Run this query in the IDE

{
EVM(network: elysium) {
Balances(
where: {Balance: {Address: {is: "0x29b200d479c5ed21ba9989773ca6fafffb2ba13f"}}}
orderBy: {descending: Balance_AmountInUSD}
limit: {count: 20}
) {
Currency { Name Symbol SmartContract Native }
Balance { Amount AmountInUSD }
}
}
}

Balance of one token​

Add the token contract address to get a single balance.

Run this query in the IDE

{
EVM(network: elysium) {
Balances(
where: {Balance: {Address: {is: "0xf70da97812cb96acdf810712aa562db8dfa3dbef"}}, Currency: {SmartContract: {is: "0xb47c4c8f73f009cc0c0d3f92b388d13e293f0b65"}}}
) {
Currency { Name Symbol SmartContract }
Balance { Amount AmountInUSD }
}
}
}

Native HYPE balance of several wallets​

Address: {in: [...]} reads several wallets at once, and Currency: {Native: true} keeps only HYPE.

Run this query in the IDE

{
EVM(network: elysium) {
Balances(
where: {Balance: {Address: {in: ["0x785e295a4e716406e6ef45f7884039619c5c1bdb", "0x92fe8c300a3d7321b108fe7ac78272f816562dea"]}}, Currency: {Native: true}}
) {
Balance { Address Amount AmountInUSD }
Currency { Symbol Native }
}
}
}

Top holders of a token​

Holders ranks the addresses that hold a token. This returns the 20 largest USDC holders.

Run this query in the IDE

{
EVM(network: elysium) {
Holders(
where: {Currency: {SmartContract: {is: "0xb47c4c8f73f009cc0c0d3f92b388d13e293f0b65"}}}
orderBy: {descending: Balance_Amount}
limit: {count: 20}
) {
Holder { Address }
Balance { Amount }
Currency { Symbol SmartContract }
}
}
}

Holders returns token amounts. For USD values, multiply by the price from the Elysium prices page.


Balance changes per transaction​

TransactionBalances has one row per address, token and transaction, with the balance before (PreBalance) and after (PostBalance).

Run this query in the IDE

{
EVM(network: elysium) {
TransactionBalances(
where: {TokenBalance: {Address: {is: "0x785e295a4e716406e6ef45f7884039619c5c1bdb"}}}
orderBy: {descending: Block_Time}
limit: {count: 20}
) {
Block { Time }
Transaction { Hash }
TokenBalance {
Address
PreBalance
PostBalance
Currency { Symbol SmartContract }
}
}
}
}

Run it as a subscription to watch a wallet balance change live.


FAQ​

Which cube gives the current balance? Balances. It returns the balance directly, so there is nothing to add up.

Is there a BalanceUpdates cube on Elysium? No. EVM chains use Balances, Holders and TransactionBalances.

Do balances include native HYPE? Yes. Native HYPE rows have Currency.Native: true and no contract address.

Build with Bitquery

Ready to run this in production?

Get an API key and run these queries in minutes, or talk to us about plans and enterprise delivery.