get_transactions
Get paginated transaction history across the user's smart accounts. Returns a JSON object { transactions, pagination }. Returns the empty form (transactions: [], zeroed pagination) if the passkey controls no smart accounts.
Required scope: read:transactions
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
page_number | number | no | 1 | Page number, starting at 1. |
page_size | number | no | 20 | Results per page (max 100). |
Returned fields:
| Field | Type | Description |
|---|---|---|
transactions[].type | "cryptoTransfer" | "cardTransaction" | "rampOrder" | "rampOrderWithSwap" | "swap" | "investment" | Kind of transaction. |
transactions[].status | "success" | "pending" | "failed" | "partial" | "refunded" | "unknown" | Settlement state. |
transactions[].executedAt | date | When the transaction executed. |
transactions[].receipts | array | On-chain receipts. Multiple entries for cross-chain transactions (e.g. bridges). |
transactions[].receipts[].chainId | number | Chain the receipt is on. |
transactions[].receipts[].txHash | string | Transaction hash. |
transactions[].flows[] | array | Money movement legs. A swap has two flows (outflow + inflow); a transfer has one. |
transactions[].flows[].smartAccount.address | string | null | Smart account address the flow belongs to. |
transactions[].flows[].smartAccount.chainId | number | null | Chain of that smart account. |
transactions[].flows[].smartAccount.type | "picnic" | "gnosisPay" | "agentWallet" | "unknown" | Type of smart account. |
transactions[].flows[].direction | "inflow" | "outflow" | Direction relative to the smart account. |
transactions[].flows[].assetId | string | null | CAIP (opens in a new tab) asset identifier (eip155:{chainId}/erc20:{address}, bep20 on chain 56, slip44:60 for natives). |
transactions[].flows[].symbol | string | Token symbol (e.g. USDC, EURE). |
transactions[].flows[].formattedAmount | string | null | Decimal-formatted amount (e.g. "52.5"). String, like formattedAmount in get_balances. |
transactions[].flows[].values.usd | number | null | Flow value converted to USD. null if no rate. |
transactions[].flows[].values.eur | number | null | Flow value converted to EUR. |
transactions[].flows[].values.brl | number | null | Flow value converted to BRL. |
pagination.pageNumber | number | Current page (1-indexed). |
pagination.pageSize | number | Page size used. |
pagination.totalCount | number | Total transactions matching. |
pagination.totalPages | number | ceil(totalCount / pageSize). |
Type-specific fields:
When type === "cardTransaction", the transaction also includes a purchase object with merchant and billing details:
| Field | Type | Description |
|---|---|---|
purchase.merchant | string | null | Merchant name. |
purchase.merchantCity | string | null | Merchant city. |
purchase.merchantCountry | string | null | Merchant country (ISO alpha-2 in most cases). |
purchase.mcc | string | null | Merchant Category Code (4-digit ISO 18245), when reported by the provider. |
purchase.kind | string | null | Provider transaction kind — e.g. "Payment", "Refund", "Reversal". |
purchase.status | string | null | Provider status — e.g. "Approved", "Declined". |
purchase.isPending | boolean | null | Whether the card transaction is still pending. |
purchase.billingAmount | string | null | Amount billed (in billingCurrency major units). |
purchase.billingCurrency | string | null | Billing ISO currency code. |
purchase.transactionAmount | string | null | Amount at the point of sale (in transactionCurrency major units). |
purchase.transactionCurrency | string | null | Point-of-sale currency code. |
purchase.cardId | string | null | Cross-references get_card's cardId. |
purchase.cardName | string | null | User-set card label. |
purchase.lastFourDigits | string | null | Masked PAN. |
When type === "rampOrder" or "rampOrderWithSwap", the transaction includes a ramp object:
| Field | Type | Description |
|---|---|---|
ramp.provider | string | null | Underlying ramp provider (e.g. "brla", "avenia", "monerium"). |
ramp.type | "deposit" | "depositWithSubsequentSwap" | "withdrawal" | null | Ramp direction. |
When type === "investment", the transaction includes an investment object:
| Field | Type | Description |
|---|---|---|
investment.type | "deposit" | "withdrawal" | "send-native-btc" | null | Investment direction. |
investment.product | string | null | Investment product (e.g. "EarnDollarUSDC", "DeFiBasketEasyPassiveUSD"). |
Example prompt:
"Show me my last 30 Picnic transactions."