HTTP/1.1 402 PAYMENT REQUIRED agent402.base.eth · BASE · SOLANA · POLYGON · ARBITRUM · STELLAR · ROBINHOOD · USDC · USDG
Agent402 / tools / b20-memos

B20 payment memos

$0.005 per call · USDC via x402 · GET /api/b20-memos

Payment memos attached to B20 transfers: pairs each Memo(address,bytes32) log with its Transfer at the previous log index (same tx, same token). Give a tx hash for one transaction, or scan a block window. Returns memoHex always and memoText when printable UTF-8. ?token=0xb200…&tx=0x…|&blocks=50000&address=0x…&limit=50

Input

FieldTypeDescription
token *stringB20 token address (must carry the 0xb200 prefix)
txstringoptional: decode memos in this transaction only
addressstringoptional: only transfers where from or to equals this address
blocksnumberwindow-scan lookback (default 50000, max 200000; ignored when tx is given)
limitnumbermax memo rows (default 50, max 200)

Example output

{
  "token": "0xb200…0001",
  "mode": "window",
  "fromBlock": 1,
  "toBlock": 2,
  "scannedFromBlock": 1,
  "truncated": false,
  "count": 0,
  "memos": []
}

Try it — see the 402 challenge (free)

curl -i "https://agent402.tools/api/b20-memos?token=0xb200000000000000000000000000000000000001&blocks=1000"

The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:

Paid call (JavaScript agent)

import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://agent402.tools/api/b20-memos?token=0xb200000000000000000000000000000000000001&blocks=1000");
Wallet-only. This tool reaches the network/browser/storage, so it is paid in USDC via x402 (no proof-of-work tier).

Related tools

x402 quote

$0.003 · GET /api/x402-quote

Probe any URL and decode its HTTP 402 payment requirements (price, asset, network, pay-to) into clean JSON — what an age…

USDC balance

$0.003 · GET /api/usdc-balance

Read the USDC balance of any address on Base, Polygon, Arbitrum, Optimism, or Ethereum. Read-only on-chain call. ?addres…

Transaction status

$0.003 · GET /api/tx-status

Check the confirmation status of a transaction by hash on Base/Polygon/Arbitrum/Optimism/Ethereum/Robinhood Chain: succe…