Wallet Statements
Export native Base USDC transfers with exact running balances, counterparties and OFAC flags as CSV or JSON for a selected past date range.
Open Stablecoin BooksWho it’s for
People and agents organizing bookkeeping records for a wallet.
Price
0.05 USDC per export. No free trial.
Paid calls use x402 with USDC on Base. Read the quote before authorizing payment; examples below do not pay automatically.
Know the limits
Maximum 90 days, 1,000 transfers, 128 RPC calls and 25 seconds. Start is inclusive; end exclusive. Reconciliation relies on the RPC provider, not an independent completeness proof. Informational, not tax advice.
A 30-second integration
Examples use placeholders. Plain requests to paid tools return a payment challenge, not a paid result. Free Lint can perform an unpaid public probe. Inspect the response status and evidence scope before using any result.
curl
curl -i https://api.spendpreflight.com/v1/books/statement \
-H 'Content-Type: application/json' \
-d '{"address":"0x1111111111111111111111111111111111111111","start":"2026-10-01T00:00:00Z","end":"2026-10-02T00:00:00Z","format":"csv"}'MCP
Connect to https://api.spendpreflight.com/mcp. Call the existing tool:
{
"name": "wallet_statement",
"arguments": {
"address": "0x1111111111111111111111111111111111111111",
"start": "2026-10-01T00:00:00Z",
"end": "2026-10-02T00:00:00Z",
"format": "csv"
}
}SDK / JavaScript
Install spendpreflight@0.3.0 or newer. The helper accepts a caller-supplied, explicitly budgeted payment-capable fetch when you choose to pay.
import { walletStatement } from 'spendpreflight';
// plain fetch discovers payment requirements; no wallet or automatic payment
const result = await walletStatement({"address":"0x1111111111111111111111111111111111111111","start":"2026-10-01T00:00:00Z","end":"2026-10-02T00:00:00Z","format":"csv"});Frequently asked questions
Is this a tax return or cost-basis report?
No. It exports observed transfers and balances. It does not classify income, calculate gains or determine tax treatment.
What happens when a range is too large?
Oversized or unavailable historical data fails without charge. Choose a smaller range; the service does not silently return a partial paid statement.
Related tools
Payee Screening · Listing Guard · Seller Monitoring
Authoritative OpenAPI schemas · What this service stores · Practical guides