POST
/v1/address-transactions
Transaction history for a single address.
Walks the history of one address rather than the link between two. Each row names the counterparty, the direction, the token and the raw amount with its decimals, so the caller can format values without a second lookup. Paging is by limit and offset, and has_more says whether another page exists.
Request
curl -X POST https://intelapi.publicaml.org/v1/address-transactions \
-H 'Content-Type: application/json' \
-d '{
"address": "0x…",
"chain": "ETH",
"limit": 50
}'Response
{
"address": "0x08723392ed15743cc38513c4925f5e6be5c17243",
"chain": "ETH",
"count": 5,
"limit": 5,
"offset": 0,
"has_more": true,
"plan": "union",
"transactions": [
{
"block_number": "25722621",
"counterparty": "0x2767ae7e0c205425a7b7f7583c512513c527f482",
"amount_raw": "90000000000000",
"decimals": 18,
"direction": "out"
}
]
}Response fields
| Field | Type | Meaning |
|---|---|---|
| has_more | boolean | Whether a further page exists. |
| transactions[].amount_raw | string | Raw integer amount as a string. Divide by 10^decimals. |
| transactions[].counterparty | string | The address on the other side of this transfer. |
| plan | string | Which read path answered the query. Diagnostic, not part of the data. |
Things that catch people out
- The field is address here, not wallet_address. /v1/enrich and /v1/counterparties take wallet_address.
- Take the value from amount_raw with decimals. A hot address on a wide window is a heavy query - page it rather than asking for a large limit in one call.
Try it
The interactive console runs this endpoint against live data from the browser, with no key and no signup.
Open the sandbox at intelapi.publicaml.org