Skip to main content

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.

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 ➤


Stream every transfer​

A subscription with no filter delivers every HYPE and token transfer as it lands. Add a where filter to narrow it.

Run this query in the IDE

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.

Run this query in the IDE

{
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}.

Run this query in the IDE

{
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.

Run this query in the IDE

{
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.

Run this query in the IDE

{
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.

Run this query in the IDE

{
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.

Run this query in the IDE

{
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.

Run this query in the IDE

{
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.

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.