Cambrian Token Transaction Feed API
GET /api/v1/solana/token-transactions
Token Transaction Feed
Overview
Retrieve a paginated list of trades and transactions for a specified Solana token address across all DEXes. You can filter results by transaction type, DEX, pool, minimum trade value, and time range to build a complete trading activity feed for any SPL token.
Business Value
- Real-time Trading Intelligence: Access up-to-the-minute transaction data across all major Solana DEXes to identify trading patterns and market movements
- Cross-DEX Analytics: Monitor token activity across Meteora, Raydium CLMM, Pump.fun AMM, and Orca in a unified dataset for comprehensive market analysis
- Risk Management: Filter transactions by minimum USD value and transaction type to focus on meaningful trades and avoid noise from micro-transactions
- Portfolio Tracking: Track specific token transactions within defined time periods to analyze trading performance and market timing
- Arbitrage Opportunities: Identify price discrepancies and trading volumes across different DEXes to spot potential arbitrage opportunities
Endpoint Details
URL:
https://api.cambrian.org/solana/token-transactions
Method: GET
Authentication: Required via X-API-Key header
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| token_address | string | Yes | - | Token program address (base58-44 string). See tokens for valid addresses. |
| after_time | integer | No | 1735689600 | Unix timestamp - start time for data range |
| before_time | integer | No | 1735776000 | Unix timestamp - end time for data range |
| days | integer | Yes | - | Number of days to look back for transactions. Default is 1 day.. |
| tx_type | string | No | - | Transaction type filter: buy, sell, add_liquidity or remove_liquidity. |
| dex | string | No | - | Filter by DEX: Meteora , Raydium CLMM, Pump.fun AMM or Orca |
| pool_address | string | No | - | Filter trades by pool contract address |
| min_value_usd | number | No | - | Minimum trade value in USD |
| limit | integer | No | 100 | Limit the number of results. |
| offset | integer | No | 0 | Offset the results, allows you to skip a number of rows before starting to return rows. |
Response Field Descriptions
| Response Field | Type | Description |
|---|---|---|
| transactionHash | String | Signature/hash of the transaction |
| slot | UInt64 | Solana slot number in which the transaction was processed |
| blockTime | UInt32 | Unix timestamp of the block containing the transaction |
| transactionType | String | Type of transaction (e.g., buy, sell) |
| tokenAmount | Float64 | Amount of the token involved in the transaction |
| valueUSD | Float64 | USD value of the transaction |
| priceUSD | Float64 | USD price per token at the time of the transaction |
| dex | String | DEX where the transaction occurred |
| poolAddress | String | Address of the liquidity pool involved in the transaction |
| instructionIndex | UInt32 | Index of the instruction within the transaction |
Examples
1. Fetch Recent Trades for a Token
Retrieve the most recent trades for a specific SPL token across all DEXes over the last day, limited to 10 results.
curl -X GET "https://api.cambrian.org/solana/token-transactions?token_address=So11111111111111111111111111111111111111112&days=1&limit=10" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json"
Response:
[
{
"columns": [
{
"name": "transactionHash",
"type": "String"
},
{
"name": "slot",
"type": "UInt64"
},
{
"name": "blockTime",
"type": "UInt32"
},
{
"name": "transactionType",
"type": "String"
},
{
"name": "tokenAmount",
"type": "Float64"
},
{
"name": "valueUSD",
"type": "Float64"
},
{
"name": "priceUSD",
"type": "Float64"
},
{
"name": "dex",
"type": "String"
},
{
"name": "poolAddress",
"type": "String"
},
{
"name": "instructionIndex",
"type": "UInt32"
}
],
"data": [
[
"2u9onkexbhKcMt5V3qQwSpiyGBvUW4ZAbgotBHvY42Zxqb4LEsLosFrbsxNn3c7mCvxSrJdY4ydKJv8YBKoN7nvu",
437815452,
1786117235,
"sell",
0.156193896,
11.54013385328043,
73.88338564319076,
"Pump.fun AMM",
"J6uRnFEvRc8mzcVL7aVcDPJKNLfJaAPeFDVNU1bh5zG1",
194
],
[
"4c1LCzbf7ykaFbjhpxGfsCBLbqJZDfvWnsscXtHRv4cWB5655QsT8rzdABxSNqFKQGsgLr1JWEgzQd8Mbq36i6sA",
437815452,
1786117235,
"buy",
2.593251462,
191.59819783671426,
73.88338564319076,
"Pump.fun AMM",
"CVEtj77yETHMMZ95AWF2XtdCQ2P6XvJeG2H94m4ZNyxf",
192
],
[
"3ngy77s9YsykZtdBfM7NLV4VAbJxzwZRw8NazkqQCAD4919Tnv2f9bbMvNxU5mLHWa292YcsAQiizXLbPJxQkfSx",
437815452,
1786117235,
"sell",
3,
221.6501569295723,
73.88338564319076,
"Pump.fun AMM",
"2d6dfWmM8E19F5JZq8Xxv76SxPbkxJpFyyEZtELsAxsr",
190
],
[
"5Dz9zdDbXMFE8k6XJss1rN2RLcaEAtuA2mDR2mvC9nyanAz2M7jQ9RL6idxYGtFzBCppAnK7RodH5Q5Q7FnTT4Ku",
437815452,
1786117235,
"sell",
1.463611756,
108.13659180045562,
73.88338564319076,
"Pump.fun AMM",
"6HQLH59ZKi7guqDATaxjfpWsyRciM6uBUt5L6D4t55b",
188
],
[
"2fVc8jM3JrxhXziesuV71MjM2zAq8AhBLBxAJQb83Gcvpuz1537oXsWDuPqcvBjCuuoKa8fgfe2FM5XQuig83hJf",
437815452,
1786117235,
"sell",
0.2475,
18.286137946689713,
73.88338564319076,
"Pump.fun AMM",
"Cp4Gu42oVyQWCLKupNiKTnJGerWx5kZr4YvaexH8rRPB",
186
],
[
"4ZcX5maQ7gUrF8UNGQzDYNdXoqKrHv7hKFTqJr4UnKJJZyqBhQMHWUAGU42AK28UZUUFL9XDgY6z77WCDwhfU7zi",
437815452,
1786117235,
"buy",
0.113780203,
8.40646661680953,
73.88338564319076,
"Pump.fun AMM",
"5WUpu1GXtoHcWo3qQaGWEFoRJwZ6kgacUVfzn8x2V2Hz",
184
],
[
"2SKkjLF9HzQNr5bqGYQpG2Zo152zEDmiiMkMD3gZoDqnmgcETvxFBiWDghLbf4iTjUDnBwxKEsqoYJAe5ARFnSVB",
437815452,
1786117235,
"sell",
2.3672e-05,
0.0017489675049456117,
73.88338564319076,
"Pump.fun AMM",
"21wp48aHAd53ADVJiEEsGdFAQUmN8Hk7j8aMXJLX9xBY",
182
],
[
"3VP7F56TBuMkPjpwUpbPsfBERg1MhTjKa7HECP2vQdVw2fP1a39et5JAVKeNw7QtKpwEDV8a22sAZ1vxEiC9rHux",
437815452,
1786117235,
"buy",
9.336756018,
689.8311455342762,
73.88338564319076,
"Pump.fun AMM",
"Hc6Z9AFiSfWA3SmL3np35VNZNpxpgAK9aBjdjFs5Zzvo",
180
],
[
"3VP7F56TBuMkPjpwUpbPsfBERg1MhTjKa7HECP2vQdVw2fP1a39et5JAVKeNw7QtKpwEDV8a22sAZ1vxEiC9rHux",
437815452,
1786117235,
"sell",
9.376357551,
692.7570408689767,
73.88338564319076,
"Pump.fun AMM",
"Hc6Z9AFiSfWA3SmL3np35VNZNpxpgAK9aBjdjFs5Zzvo",
178
],
[
"3uQ58uMFxLKFutqu3oWJLwyHZ9pL5w6NwauD6LjXw2Hm5kcfVaBYyUaq1noH3Rc7PBe5P6oyTzUZZJF2ksSLDAPJ",
437815452,
1786117235,
"sell",
0.218506773,
16.14402017520814,
73.88338564319076,
"Pump.fun AMM",
"CVEtj77yETHMMZ95AWF2XtdCQ2P6XvJeG2H94m4ZNyxf",
176
]
],
"rows": 10
}
]
Note: result collections are limited to 10 items in this example. All 10 returned trades for Wrapped SOL occurred on Pump.fun AMM at the same price point (~$73.88) and include a mix of buy and sell transactions within the same slot.
x402 Payment Option
This endpoint supports pay-per-use access via the x402 payment protocol (v2): pay $0.05 USDC per request using blockchain micropayments. No API key required.
Quick Start (TypeScript)
npm install @x402/fetch @x402/evm viem
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY as `0x${string}`);
const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const response = await fetchWithPayment(
"https://x402.cambrian.org/solana/token-transactions"
);
const data = await response.json();
Quick Start (Python)
pip install "x402[httpx]"
import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
async def main():
client = x402Client()
account = Account.from_key(os.getenv("EVM_PRIVATE_KEY"))
register_exact_evm_client(client, EthAccountSigner(account))
async with x402HttpxClient(client) as http:
response = await http.get("https://x402.cambrian.org/solana/token-transactions")
print(response.json())
asyncio.run(main())
Payment Flow
- Send a normal request to the endpoint (no API key needed)
- Server returns
402 Payment Requiredwith payment details - The x402 SDK automatically signs a payment authorization with your wallet
- The SDK resubmits the request with the signed payment
- Server verifies payment and returns the API response
The x402 SDK handles steps 2 through 5 automatically.
Network: Base (chain ID 8453) | Currency: USDC | Price: $0.05 per request