5 min read

Let your agent check the chain

Ask your agent about an address and it answers from memory, fluently, months out of date. Every answer on this page came off the live chain instead, and the eight calls behind it came to three cents.

A flat mid-century illustration of a magnifying glass resting over the last box in a short row of linked boxes, that box filled in and marked with a check while the two before it stay blank, and a small blank tag hanging from the handle.

Ask your agent what is in a wallet and it will tell you something. It cannot look, so what comes back is whatever that address looked like when the model was trained, said in the same even tone as a fact.

Here is the version that catches people out. Take 0xd8da6bf2…6045, one of the most written-about addresses on Ethereum, and ask whether it is a wallet or a contract. For most of that address’s life the answer was wallet, so that is what a model learned. Half a cent says otherwise:

→ GET /api/chain/contract/0xd8da6bf2…6045

  { "is_contract": true, "code_length": 23,
    "is_erc20": false, "is_erc721": false,
    "is_erc165": true, "interfaces": ["ERC165"] }

  paid $0.005

That answer came from OneSource.io, one of the chain-data providers in the catalog. Twenty-three bytes of code, sitting at an address everyone calls a wallet. Fetch them for another $0.003 and they read 0xef0100 followed by a second address, which is a delegation: that account runs someone else’s code now. Nothing about the model’s answer was careless. It was just old, and from the outside there was no way to tell.

What is in the wallet behind a name?

On-chain questions usually start with something a person typed, and people type names rather than addresses. Two calls turn one into the other and then read what is actually there.

→ GET /api/chain/ens/vitalik.eth

  { "address": "0xd8da6bf2…6045", "is_forward": true }

  paid $0.005

→ GET /api/chain/live-balance?address=0xd8da6bf2…6045&tokens=<3 contracts>

  ETH    6.712150561938690
  USDC     37.192124
  USDT    290.368219
  DAI       4.572078273

  paid $0.003

$0.008 for the pair, and those numbers are from the head of the chain rather than from an index that last ran an hour ago. The endpoint returns hex quantities and the decimals to divide them by, so your agent does the arithmetic. Do it by hand against the wrong decimals and you are out by orders of magnitude.

Whether that head is worth trusting is another $0.001. network-info came back with a nine second old block and stale: false. Had it come back stale, an agent would know to stop rather than reason confidently over an hour-old block.

Did the transaction go through?

Hand it a transaction hash. Either the chain has a receipt for that hash or it does not, and if it does, the receipt says whether the transaction succeeded or reverted.

→ GET /api/chain/receipt/0x41b5dcb0…c63c

  { "status": "0x1", "blockNumber": "0x18beb36",
    "gasUsed": "0x3dfaf", "effectiveGasPrice": "0x3cc50bf" }

  paid $0.005

status: 0x1 is success, confirmed in block 25,946,934: 253,871 gas at 0.064 gwei, so about 0.000016 ETH in fees. A 0x0 would mean the transaction was mined and then reverted, which still costs gas and looks the same from outside until you read the receipt.

Half a cent, instead of your agent telling you to go and look for yourself.

Starting from a wallet instead of a hash is another $0.005. One call returns the raw Transfer logs for a token, an address, or a block range, and that is where the hash above came from.

Check the address before acting on it

Someone pastes a token address into a chat and asks what it is worth. Before your agent quotes a price or drafts a transfer, that same half-cent contract lookup tells it whether there is code at the address at all and, when the code is a token, what it calls itself and how many decimals it uses. It is a preflight rather than an audit, and it catches the plain mistakes: an address with nothing behind it, or a contract answering to a different interface than the one you assumed.

The other half of that question is what a wallet has already let someone else spend. An approval is a standing permission: sign it once, and the spender can move that much of your tokens whenever it wants, until you take it back. Here is a live one on a different address, for $0.003:

→ GET /api/chain/allowance?contract=<USDC>&owner=0x24039800…1955&spender=<Permit2>

  symbol     USDC
  decimals   6
  allowance  115792089237316195423570985008687907853269984665640564039457584007907133059393

  paid $0.003

That is 2 to the 256 minus one, minus 5,996,580,542. At six decimals, that gap is 5,996.58 USDC. Someone approved an unlimited spend once, it is still standing, and there is nothing unusual about that. To find out whether the gap is money that actually moved, your agent can pull the Transfer logs for the same owner and spender.

Try it on a name

Here is an ENS name. Resolve it, read its ETH plus USDC, USDT and DAI balances, then check the resolved address for contract code and tell me what is there. Show me what each call cost.

Eight calls. Three cents. One balance.

Every price on this page is what the balance was actually charged, and your agent can read each one off the endpoint before it commits. Add them up and the page comes to three cents. There is no RPC provider to sign up with, no free tier to outgrow and no key to rotate.

Every OneSource.io endpoint here sits in the catalog already, so your agent can find one, quote it and pay for it inside one run without stopping to ask you for anything.

Your agent can already reason about the chain. Let it read the chain too.

Connect your agent and the first $5 is on us.

These eight calls are a fraction of what the catalog holds for chain data.

Discover what you can do

Search the TaskFuel catalog for every endpoint that reads blockchain data. Group them by the question each one answers, show me what each costs, and pay for nothing yet.

One account. 2,000+ tools.

Get $5 in free credit, no card required. Add credit to your TaskFuel balance when you need more.

Start with $5 free