Providers
Arweave gateway
Wallet and block REST plus the GraphQL index of a gateway. arweave.net by default. Winstons. No gas. History that stays on one gateway.
Provider
Arweave gateway
- arweave
- Chains
- 1
- Auth
- none
- Operations
- 4 of 10
served 4 / 10
Operations
- balance
getBalanceserved - history
getTxHistoryserved - tx detail
getTxDetailserved - utxos
getUtxosabsent - pubkey
getPubkeyabsent - contract
getContractInfoabsent - tokens
getTokenBalancesabsent - transfers
getTokenTransfersabsent - gas
getGasDataabsent - block
getBlockInfoserved
Access
- Create
create("arweave") - Import
@agntn/explorers/providers/arweave - Host
arweave.net - Statusproviders on the docs worker
Address it
import { Arweave } from "@agntn/explorers/providers/arweave";
const arweave = new Arweave({ baseUrl: "https://ar-io.dev" }); // create("arweave") reads arweave.net
await arweave.getBalance("FPjbN_btYKzcf8QASjs30v5C0FPv7XpwKXENBW8dqVw", "arweave");
baseUrl is the gateway root for both APIs and defaults to https://arweave.net. Every request stays on that gateway; there's no fallback to another node.
What it reads
/wallet/:address/balance and /block/height/:n over REST, transaction history and details through the gateway's GraphQL index.
Gotchas
- History merges owner and recipient queries, drops the duplicate rows a transfer to yourself produces, honours
sort, inclusivestartBlockandendBlock,limitfrom 1 to 100 andpagefrom 1, and caps each read atpage * limit <= 1000. Use block bounds for older history. Index coverage depends on the gateway, particularly for bundled data items. tagsnarrows history on the gateway's side, as{ name, values }per tag. Any value matches, and every tag must. Only text posts?[{ name: "Content-Type", values: ["text/plain"] }]. An empty name or value list throws, since the gateway answers it with no rows, which looks exactly like an empty history.[]means no filter.- Winstons, twelve decimals. A data item's fee is left out because its parent bundle pays the network fee; bundle membership, data metadata and tags stay in
raw. - An empty recipient stays
"", a data upload, not contract creation. A missing block means pending, with block number 0 and no timestamp. - Balance answers carry no height or hash, so both snapshot fields are
null. There's no gas: block gas fields hold"0", and/price/{bytes}quotes a storage cost, not a price per gas unit, sogetGasDatastays unsupported. - Addresses and transaction ids share a shape. The CLI needs
-m detailfor a transaction id, and the explorer's address page offers the transaction reading as a link. - SmartWeave and AO execution status isn't inferred from inclusion in a block. Being in a block means the bytes are there, nothing more.
Where it lives
src/providers/arweave.ts.