{"surface":"Heidrun — the read-only REST API of a SourceLess node","readOnly":true,"methods":["GET","HEAD"],"chainName":"SourceLess Asgard","version":"v1","note":"Every amount, height and nonce is a decimal string rather than a JSON number, because a bigint past 2^53 loses precision as a number and a balance wrong in its last digits is worse than one obviously a string. A transaction status of \"unknown\" is NOT \"rejected\".","authentication":"None required. This is public read-only data; a key is optional and only changes which rate-limit bucket a request is charged to.","cors":"Cross-origin GET is allowed for any origin. Credentials are never honoured.","exposure":{"kind":"loopback","note":"Bound to loopback. Nothing leaves this machine."},"openapi":"/v1/openapi.json","routes":[{"path":"/v1/status","summary":"chain id, height, head hash, pending count, finality and whether a write reaches the network"},{"path":"/v1/parameters","summary":"the consensus parameters actually in force, governed values included"},{"path":"/v1/genesis","summary":"the genesis hash, the genesis chain id, and the two chain bindings a signature must carry"},{"path":"/v1/block/height/{height}","summary":"one block, whole, by its height. 404 past the head"},{"path":"/v1/block/hash/{hash}","summary":"one block, whole, by its hash. 404 when this node holds no such block"},{"path":"/v1/blocks?from={h}&count={n}","summary":"a bounded run of blocks from a height, with nextHeight to page from"},{"path":"/v1/tx/{id}","summary":"a transaction status: queued, settled, final, diverged, abandoned or honestly unknown. unknown is NOT rejected and is served 200"},{"path":"/v1/tx/{id}/status","summary":"one node's reading of where a transaction has got to: unknown, dropped (this node no longer expects it in a block), seen by this node (in its queue), in block h at depth d of the depth the chain's rule asks for, or deep: at least that depth, which this chain treats as settled (by depth, not by signatures). Labelled with which archive follower answered and its head height. By transaction id only; 503 on a door that is not reading from archive followers"},{"path":"/v1/tx/{id}/proof","summary":"a merkle proof that a transaction is in a block, with the header root to check it against. 404 when no block this node holds carries it"},{"path":"/v1/address/{address}/balance","summary":"all seven ledgers for one address, the rule each imposes, and the settled and next nonce"},{"path":"/v1/address/{address}/nonce","summary":"the settled nonce, the next nonce a signature must carry, and how many are in flight"},{"path":"/v1/address/{address}/history","summary":"transfers touching an address, newest first; ?depth bounds the scan and reachedGenesis says whether it covered the whole chain"},{"path":"/v1/address/{address}/domain","summary":"the proved STR.domain an address holds, or null"},{"path":"/v1/domain/{name}","summary":"the whole standing of a name: available, booked, held, in burn cooldown"},{"path":"/v1/domain/{name}/holder","summary":"who holds an STR.domain, allocated or proved, or null"},{"path":"/v1/wnft/{id}","summary":"a wNFT as the chain holds it: entries, versions, slaves and the lock. 404 when unknown"},{"path":"/v1/contract/{address}","summary":"the callable ABI of a deployed contract (empty when none is deployed there)"},{"path":"/v1/contract/{address}/storage?after={key}&limit={n}","summary":"a page of a contract's storage slots in key byte order, after the key cursor `after`; at most 512 slots and 1 MiB, and the answer says which cap it hit and the cursor to ask from next"},{"path":"/v1/contract/{address}/events?after={sequence}&limit={n}","summary":"a page of the event feed of a deployed contract, after the sequence cursor `after`; at most 256 events and 1 MiB, and the answer says which cap it hit and the cursor to ask from next"},{"path":"/v1/validators","summary":"who may seal at the head, with every admission, eviction and suspension that got it there"},{"path":"/v1/checkpoint","summary":"this node's Urd succinct checkpoint — a constant-size recursive proof over its whole chain"},{"path":"/v1/delegations?master={a}&delegate={b}","summary":"live Gefjon spending authorities, with how much of each cap this window has left"},{"path":"/v1/organisation/{domain}","summary":"an organisation and its departments: who holds it, who may sign for it, where each department is paid. 404 for a name that is not a proved master"},{"path":"/v1/collateral/reserves","summary":"reserves held against minted $TR, so a holder can check the peg themselves"},{"path":"/v1/bridge/attestors","summary":"the keys this chain's genesis authorises to mint $TR. An empty list is a real answer"},{"path":"/v1/live","summary":"Sirius: the honest live figures for an embedded status widget — height, head age, last block interval, the finality line and the seats on the roll. No throughput figure, because none is measured"},{"path":"/v1/network","summary":"which realm this chain is: chain id and genesis hash, matched against the network register"},{"path":"/v1/tokens","summary":"the seven native ledgers from their definitions: symbol, decimals, supply policy, cap, whether a holder may transfer it and the purpose a transfer must carry"},{"path":"/v1/tokens/{symbol}","summary":"one native ledger. 404 for a symbol this chain does not keep"},{"path":"/v1/supply","summary":"supply and circulating per value ledger, as the chain defines them: circulating is supply that is not locked. Read from the chain index; 503 where none is wired"},{"path":"/v1/supply/{symbol}","summary":"one value ledger of /v1/supply"},{"path":"/v1/supply/{symbol}/total.txt","summary":"the total supply in whole units, as plain text, for a listing site"},{"path":"/v1/supply/{symbol}/circulating.txt","summary":"the circulating supply as the chain defines it, in whole units, as plain text, for a listing site"},{"path":"/v1/address/{address}/transactions?offset={n}&limit={n}","summary":"an address's whole transfer history, newest first, paged at most 100 a page. Read from the chain index; 503 where none is wired"},{"path":"/v1/tx/{id}/transfer","summary":"one transfer by id from the whole chain: parties, their STR.domains, amount, ledger and block. Finality is /v1/tx/{id}"},{"path":"/v1/price","summary":"answers that no price, market cap or treasury-excluding circulating figure is published, and why"},{"path":"/v1/ready","summary":"readiness: 200 when the chain behind this API answers, 503 with the reason when it does not"},{"path":"/v1/openapi.json","summary":"the OpenAPI 3.1 description of this surface"},{"path":"/v1/health","summary":"liveness, deliberately thin: it asks the chain nothing"}]}