← oblique.markets · all endpoints
Use when an agent needs recent Solana token-flow activity for one wallet or token mint without an indexer account: which tokens moved, in which direction, with whom, and whether a public DEX program was involved. Returns normalized per-transaction flows (mint, owner, signed delta, decimals), counterparties, an activity read (transfer, swap, mint_burn), program labels, block time and slot, RPC provenance, freshness and a receipt with repeat-payer evidence. $0.02 per call via x402 on Solana or Bas
| Price | $0.02 per call (20000 atomic USDC, scheme exact) |
|---|---|
| Category | chain-data |
| Rails | x402 · USDC on Base (eip155:8453) and Solana · MPP pathUSD on Tempo |
| Canonical URL | https://api.oblique.markets/api/v1/paid/token-flow-activity |
curl -i https://api.oblique.markets/api/v1/paid/token-flow-activity # → HTTP 402 with the exact payment requirements; pay, then retry with PAYMENT-SIGNATURE (x402) or Authorization: Payment (MPP)
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "Solana wallet owner or token mint (base58)."
},
"activity": {
"type": "string",
"enum": [
"any",
"transfer",
"swap",
"mint_burn"
],
"default": "any",
"description": "Keep only transactions of this read: transfer, swap (a public DEX program was involved), mint_burn."
},
"direction": {
"type": "string",
"enum": [
"any",
"in",
"out"
],
"default": "any",
"description": "For a wallet subject: keep transactions where the wallet received (in) or sent (out) tokens."
},
"mint": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "Keep only transactions that moved this mint."
},
"window_hours": {
"type": "integer",
"minimum": 1,
"maximum": 168,
"default": 24
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 10,
"description": "Most recent transactions scanned; filters apply within them. Page with cursor.before."
},
"before": {
"type": "string",
"description": "Signature cursor from a previous response (cursor.before) to page further back."
}
}
}{
"chain": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"subject": {
"address": "Civ6KVQdBMnHHy4ViXGLRmMLh4Z4tJ6dprqWj4nEAyRh",
"kind": "wallet"
},
"window": {
"hours": 24,
"since": "2026-09-06T12:00:00.000Z",
"until": "2026-09-07T12:00:00.000Z"
},
"filters": {
"activity": "any",
"direction": "any",
"mint": null
},
"scanned": 3,
"returned": 1,
"partial": false,
"activity": [
{
"signature": "2s4yjhs99Xd93KnbqDVb4UqUWTXbsVHqkCQbg4KeVyC5NAMS4tthqwNhQYPencjxjJh1q2zfixVXQGkZ4CGxt3Cs",
"slot": 445009885,
"block_time": "2026-09-06T14:15:42.000Z",
"block_time_unix": 1788766542,
"status": "success",
"activity_type": "transfer",
"programs": [
"associated-token-account",
"spl-token",
"system"
],
"fee_payer": "FHpcNSe6tb2n15bAdq4BkeYWGyZKFD7yLYrH92ng7wCT",
"fee_lamports": 5000,
"flows": [
{
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"symbol": "USDC",
"owner": "Civ6KVQdBMnHHy4ViXGLRmMLh4Z4tJ6dprqWj4nEAyRh",
"token_account": "EMrJf5kf5jhBLvghNemar19dEpqXBDTpnGsYBNU6EcWB",
"direction": "out",
"delta_atomic": "-5000000",
"delta": -5,
"decimals": 6,
"token_program": "spl-token",
"is_subject": true
},
{
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"symbol": "USDC",
"owner": "7uTT8Xi5RWXzy7h9XL244GRgEycDYDhLjr3ZyNdXi8pZ",
"token_account": "4nvJ5zWdVspxJiNZzB127U6amPH98SFFkBx2JZrAduia",
"direction": "in",
"delta_atomic": "5000000",
"delta": 5,
"decimals": 6,
"token_program": "spl-token",
"is_subject": false
}
],
"counterparties": [
"7uTT8Xi5RWXzy7h9XL244GRgEycDYDhLjr3ZyNdXi8pZ"
],
"provenance": {
"source": "solana-public-rpc",
"host": "solana-rpc.publicnode.com",
"method": "getTransaction",
"commitment": "finalized",
"cached": false
}
}
],
"cursor": {
"before": "2s4yjhs99Xd93KnbqDVb4UqUWTXbsVHqkCQbg4KeVyC5NAMS4tthqwNhQYPencjxjJh1q2zfixVXQGkZ4CGxt3Cs"
},
"freshness": {
"served_at": "2026-09-07T12:00:01.000Z",
"cache": "miss",
"cached_at": "2026-09-07T12:00:01.000Z",
"ttl_seconds": 120,
"slot_at_fetch": 445010012
},
"receipt": {
"sku": "token-flow-activity",
"request_hash": "3f2a9c1e0b7d4c6a8e5f1d2b9a0c7e6d5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c",
"payer": "AisyQi7zL7cR3q6sftsv7aVAcLGKb5PR23u3nwwBtaJy",
"payment_network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"rpc_calls": 4,
"upstreams": [
"solana-rpc.publicnode.com"
],
"transactions_from_cache": 0,
"prior_calls": 0,
"is_repeat_payer": false
}
}Worked TypeScript/Python clients and MCP configs: oblique-markets/oblique-examples · Agent Skills: oblique-markets/skills
Pay per call with x402 (USDC on Base or Solana) or MPP (pathUSD on Tempo). No accounts. Machine doors: /.well-known/x402.json · /openapi.json · /llms-full.txt · MCP · humans: remote.observer