Elysium Transfers API & Streams
Query and stream HYPE and token transfers 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. This is the shared EVM Transfers cube scoped to network: elysium, so a query written for Ethereum or Base runs here after changing the network name. Every query here also runs as a live stream: change query to subscription and drop limit and orderBy.
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 ➤
- Elysium API overview — network facts, token addresses and every page in one place
- Elysium DEX Trades API & Streams
- Elysium Token Price API
- Elysium Liquidity Pools API
- Elysium Balances & Token Holders API
- Elysium Smart Contract Events API
- Elysium Smart Contract Calls API
- Elysium Transactions, Fees & Blocks API
Stream every transfer
A subscription with no filter delivers every HYPE and token transfer as it lands. Add a where filter to narrow it.
subscription {
EVM(network: elysium) {
Transfers {
Block { Time }
Transaction { Hash }
Transfer {
Sender
Receiver
Amount
AmountInUSD
Currency { Symbol SmartContract Native }
}
}
}
}
Latest transfers of a token
Filter by the token contract address. This returns the latest USDC transfers.
{
EVM(network: elysium) {
Transfers(
where: {Transfer: {Currency: {SmartContract: {is: "0xb47c4c8f73f009cc0c0d3f92b388d13e293f0b65"}}}}
orderBy: {descending: Block_Time}
limit: {count: 20}
) {
Block { Time }
Transaction { Hash }
Transfer {
Sender
Receiver
Amount
AmountInUSD
Currency { Symbol SmartContract }
}
}
}
}
Token addresses are in the Elysium token table.
Native HYPE transfers
Native HYPE has no contract address. Filter it with Currency: {Native: true}.
{
EVM(network: elysium) {
Transfers(
where: {Transfer: {Currency: {Native: true}}}
orderBy: {descending: Block_Time}
limit: {count: 20}
) {
Block { Time }
Transaction { Hash }
Transfer {
Sender
Receiver
Amount
AmountInUSD
Currency { Symbol SmartContract Native }
}
}
}
}
Transfers of an address
any matches transfers where the address is the sender or the receiver.
{
EVM(network: elysium) {
Transfers(
where: {any: [{Transfer: {Sender: {is: "0xf70da97812cb96acdf810712aa562db8dfa3dbef"}}}, {Transfer: {Receiver: {is: "0xf70da97812cb96acdf810712aa562db8dfa3dbef"}}}]}
orderBy: {descending: Block_Time}
limit: {count: 20}
) {
Block { Time }
Transaction { Hash }
Transfer {
Sender
Receiver
Amount
AmountInUSD
Currency { Symbol SmartContract Native }
}
}
}
}
Sent and received totals per token
Conditional sums split the same rows into what the address sent and what it received, per token, over the last 24 hours.
{
EVM(network: elysium) {
Transfers(
where: {any: [{Transfer: {Sender: {is: "0xf70da97812cb96acdf810712aa562db8dfa3dbef"}}}, {Transfer: {Receiver: {is: "0xf70da97812cb96acdf810712aa562db8dfa3dbef"}}}], Block: {Time: {since_relative: {hours_ago: 24}}}}
orderBy: {descendingByField: "transfers"}
limit: {count: 20}
) {
Transfer { Currency { Symbol SmartContract } }
sent: sum(of: Transfer_Amount, if: {Transfer: {Sender: {is: "0xf70da97812cb96acdf810712aa562db8dfa3dbef"}}})
received: sum(of: Transfer_Amount, if: {Transfer: {Receiver: {is: "0xf70da97812cb96acdf810712aa562db8dfa3dbef"}}})
transfers: count
}
}
}
Large transfers
Filter on AmountInUSD to see only large movements, in any token.
{
EVM(network: elysium) {
Transfers(
where: {Transfer: {AmountInUSD: {ge: "50000"}}}
orderBy: {descending: Block_Time}
limit: {count: 20}
) {
Block { Time }
Transaction { Hash }
Transfer {
Sender
Receiver
Amount
AmountInUSD
Currency { Symbol SmartContract Native }
}
}
}
}
Most transferred tokens
Tokens ranked by transfer count over the last 6 hours, with USD volume and unique senders.
{
EVM(network: elysium) {
Transfers(
where: {Block: {Time: {since_relative: {hours_ago: 6}}}}
orderBy: {descendingByField: "transfers"}
limit: {count: 20}
) {
Transfer { Currency { Name Symbol SmartContract } }
transfers: count
volumeUsd: sum(of: Transfer_AmountInUSD)
senders: uniq(of: Transfer_Sender)
}
}
}
Hourly transfer volume of a token
Time(interval: ...) groups rows into hourly buckets. This returns USDC volume per hour for the last 24 hours.
{
EVM(network: elysium) {
Transfers(
where: {Transfer: {Currency: {SmartContract: {is: "0xb47c4c8f73f009cc0c0d3f92b388d13e293f0b65"}}}, Block: {Time: {since_relative: {hours_ago: 24}}}}
orderBy: {descendingByField: "Block_Time"}
limit: {count: 24}
) {
Block { Time(interval: {in: hours, count: 1}) }
amount: sum(of: Transfer_Amount)
transfers: count
}
}
}
FAQ
How do I get native HYPE transfers?
Use Currency: {Native: true}, as in Native HYPE transfers. WHYPE is a separate token with its own contract address.
How do I stream transfers for one wallet?
Take the transfers of an address query, change query to subscription and drop limit and orderBy.
Does AmountInUSD work on Elysium? Yes, for HYPE and for tokens that trade against priced tokens in DEX liquidity pools.
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.