API reference · Balances

Balances

  • Elysium: Every token an address holds on Elysium, with USD value and the block it is read at.
  • HyperCore: Every token an address holds on HyperCore, with USD value and the block it is read at.
  • HyperEVM: Every token an address holds on HyperEVM, with USD value and the block it is read at.

GET https://api.femtos.xyz/v1/balances/{address}

Parameters

ParamInExample or valuesMeaning
addresspath<creator> (Elysium); <address> (HyperCore); <owner> (HyperEVM)0x address, or a named wallet's handle `<entityId>.<hex>`
layerqueryelysium (Elysium); hypercore (HyperCore); hyperevm (HyperEVM)Layer(s) read
minUsdquery(optional)Leave out holdings worth less (and unpriced ones)
sortquery(empty), usd, amountOrder
tokensquery(optional)Comma list (at most 50; 20 with block / at): EVM token addresses (`native` = HYPE) and HyperCore coin names; every token asked is listed, held or not (0)
includeSpamquery(empty), trueList spam tokens (flagged spam / spamReason); never in the totals
blockquery(optional)Past balances at this block (one layer; EVM: tokens= required; HyperCore: the snapshot at or before this height)
atquery(optional)Past balances at this time (Unix ms): the last block at or before it
verifyquery(empty), trueEVM layers: read the rows answered (at most 50 per layer) again on the node at the same block (Elysium, HyperEVM)

Example

Elysium

curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/balances/<creator>?layer=elysium"

HyperCore

curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/balances/<address>?layer=hypercore"

HyperEVM

curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/balances/<owner>?layer=hyperevm"

Key: Authorization: Bearer $FEMTOS_KEY. Get a free key, or with no browser through agent onboarding.

Response fields

FieldTypeMeaning
addressstringThe address: 0x address, or a named wallet's handle
layerhypercore | hyperevm | elysium | allLayer(s) read
balances[]objectHoldings, largest USD first (sort=amount: largest amount); spam left out unless includeSpam: {layer, kind, asset, symbol, name, decimals, raw, amount, priceUsd, priceSource, usd, spam, …}
countintRows listed
totalintRows matching before `limit`
totalUsddecimal | nullUSD of every holding (spam never counts; tokens= narrows it, minUsd and limit do not) + HyperCore perp account values; null on a past read
totalUsdCompletebooleanEvery holding had a price and every layer asked answered
perpobject | nullHyperCore perp accounts (layer hypercore / all): kept apart from the token rows; null with tokens= or a past read: {dex, collateral, accountValue, withdrawable, totalMarginUsed, totalNtlPos, positions, usd, dexes, totalUsd, abstraction, inSpot}
layers.<layer>objectPer layer asked: source, height, asOf (provenance), usd, count, verify: {source, height, asOf, network, chainId, testnet, syncing, dataUntil, requested, usd, usdComplete, count, …}
includeSpambooleanSpam tokens listed (the includeSpam asked)
spamHiddenintSpam holdings left out
entityobjectNamed wallet (labels), when known

Related: Balances

  • Token balance GET /v1/balances/{address}/{token} Elysium, HyperCore, HyperEVM
    One token of one address on HyperCore: 0 when not held, now or at a past block.
  • Batch balances POST /v1/balances/batch Elysium, HyperCore, HyperEVM
    Up to 100 addresses on HyperCore in one call, the same answer for each.
  • Balances, all layers GET /v1/balances/{address} Elysium, HyperCore, HyperEVM
    One address on HyperCore, HyperEVM and Elysium in one list, with totals per layer.

More

Agent guide (agents.md)llms.txtOpenAPIMCP serverGet an API keyChangelog