Wallet Transactions
Recent transaction history for any Base address, cleaned up for machine consumption. Each transaction returns: hash, direction relative to the queried wallet (in/out), the counterparty address plus its explorer-known name where one exists (exchanges, protocols, labeled contracts), native ETH value, the decoded method name where the ABI is known (transfer, swap, approve...), success status, fee paid and timestamp — newest first, up to 50 per call. Built for agents that vet counterparties before paying them, reconcile expected vs actual payments, or watch an address for activity. Data comes from the public Base explorer; token-transfer-only activity (no native tx) may not appear, and the output says so. Pairs with wallet-profile (current state), wallet-counterparties (aggregated relationships) and wallet-screen (sanctions + risk).
Call with x402
1. Send the request. 2. Receive 402 with accepts[]. 3. Sign the payment and retry with the X-PAYMENT header.
curl -X POST https://agentbit.app/v1/wallet/transactions \
-H 'Content-Type: application/json' \
-d '{"address":"0x4395C7e383b7e05665aad7f36ed77c01923Dd965","limit":10}'
Input schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "EVM address on Base (0x + 40 hex)"
},
"limit": {
"type": "integer",
"description": "Max transactions to return (1-50, default 20)"
}
},
"required": [
"address"
]
}Output schema
{
"type": "object",
"properties": {
"address": {
"type": "string"
},
"network": {
"type": "string"
},
"transaction_count": {
"type": "integer"
},
"transactions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hash": {
"type": "string"
},
"direction": {
"type": "string",
"enum": [
"in",
"out"
]
},
"counterparty": {
"type": [
"string",
"null"
]
},
"counterparty_name": {
"type": [
"string",
"null"
]
},
"value_eth": {
"type": "number"
},
"method": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"fee_eth": {
"type": [
"number",
"null"
]
},
"timestamp": {
"type": [
"string",
"null"
]
}
}
}
}
}
}Code examples
// JavaScript (x402-fetch)
import { wrapFetchWithPayment } from "x402-fetch";
const fetchWithPay = wrapFetchWithPayment(fetch, wallet);
const r = await fetchWithPay("https://agentbit.app/v1/wallet/transactions", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({"address":"0x4395C7e383b7e05665aad7f36ed77c01923Dd965","limit":10})
});
console.log(await r.json());
# Python (x402 client)
from x402.clients.requests import x402_requests
s = x402_requests(account)
r = s.post("https://agentbit.app/v1/wallet/transactions",
json={"address":"0x4395C7e383b7e05665aad7f36ed77c01923Dd965","limit":10})
print(r.json())
// PHP
$r = Http::withHeaders(['X-PAYMENT' => $signedPayment])
->post('https://agentbit.app/v1/wallet/transactions',
array (
'address' => '0x4395C7e383b7e05665aad7f36ed77c01923Dd965',
'limit' => 10,
));
$data = $r->json();