DEX Protocol Activity by Chain for a Project · Surf
Measure a DEX project's or router contract's on-chain activity. Returns time buckets with recorded trades, active traders, USD volume and pricing enrichment coverage. Use one Toolmu account and a shared prepaid balance across available Tools. Pay per use; no separate supplier subscription is required. The current execution ceiling for this Tool is 0.0144 Toolmu credits per call. This is a maximum, not the settled charge. Before execution, get the current Tool contract and check availability, the latest maximumCredits, your balance and budget. Supplier response credits_used, when present, describes supplier API credits and is not the Toolmu customer charge.
Up to 0.0144 credits / call
The final charge is based on confirmed usage. Unused reserved credits return to your available balance.
Surf
DEX Protocol Activity by Chain for a Project · Surf
Measure a DEX project's or router contract's on-chain activity. Returns time buckets with recorded trades, active traders, USD volume and pricing enrichment coverage. Use one Toolmu account and a shared prepaid balance across available Tools. Pay per use; no separate supplier subscription is required. The current execution ceiling for this Tool is 0.0144 Toolmu credits per call. This is a maximum, not the settled charge. Before execution, get the current Tool contract and check availability, the latest maximumCredits, your balance and budget. Supplier response credits_used, when present, describes supplier API credits and is not the Toolmu customer charge.
You receive
Returns time buckets with recorded trades, active traders, USD volume and pricing enrichment coverage. The chain dataset updates on a daily cycle and USD enrichment may lag. Use enriched_ratio to assess whether monetary totals are complete.
Start with your task
Check [Uniswap] on [Ethereum, Base, BNB Chain, Arbitrum, or Tron]. Share the app name or its public link; no contract number is needed. Default: last 7 days. Ask for up to 90 days or a daily view. Data refreshes daily; recent dollar volume may lag about 3 days.
Inputs & outputs
Inspect the current inputs, availability, and maximum charge before starting.
Input schema
Input schema
Field / Path
Type
Requirement
Meaning
queryParamsqueryParams
object | unknown
Required
Required fields
chain
toqueryParams.to
string
Optional
End of range — Unix seconds or YYYY-MM-DD. Without from, the window is time_range ending at to. Example: 2025-02-01.
Minimum length
1
fromqueryParams.from
string
Optional
Start of range — Unix seconds or YYYY-MM-DD. With to, the range may span at most 90 days. Example: 2025-01-01.
Minimum length
1
chainqueryParams.chain
string
Required
Chain to query. Example: ethereum.
Options
ethereum, base, bsc, arbitrum, tron
addressqueryParams.address
string
Optional
A specific router/contract measured as tx_to. Exactly one of project / address is required. Example: 0x1111111254eeb25477b68fb85ed929f73a960582.
Minimum length
1
projectqueryParams.project
string
Optional
DEX project name (e.g. uniswap, pancakeswap, aerodrome). Exactly one of project / address is required. Example: uniswap.
Minimum length
1
group_byqueryParams.group_by
string
Optional
total = single aggregate; day = daily series (newest first). Defaults to "total".
Default
total
Options
total, day
time_rangequeryParams.time_range
string
Optional
Look-back window (hard 90d cap). Overridden by from/to when set. Defaults to "7d".
Default
7d
Options
1d, 7d, 30d, 90d
View raw JSON
{
"type": "object",
"required": [
"queryParams"
],
"properties": {
"queryParams": {
"type": "object",
"oneOf": [
{
"required": [
"project"
]
},
{
"required": [
"address"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"chain"
],
"~standard": {
"vendor": "zod",
"version": 1,
"jsonSchema": {}
},
"properties": {
"to": {
"type": "string",
"minLength": 1,
"description": "End of range — Unix seconds or YYYY-MM-DD. Without from, the window is time_range ending at to. Example: 2025-02-01."
},
"from": {
"type": "string",
"minLength": 1,
"description": "Start of range — Unix seconds or YYYY-MM-DD. With to, the range may span at most 90 days. Example: 2025-01-01."
},
"chain": {
"enum": [
"ethereum",
"base",
"bsc",
"arbitrum",
"tron"
],
"type": "string",
"description": "Chain to query. Example: ethereum."
},
"address": {
"type": "string",
"minLength": 1,
"description": "A specific router/contract measured as tx_to. Exactly one of project / address is required. Example: 0x1111111254eeb25477b68fb85ed929f73a960582."
},
"project": {
"type": "string",
"minLength": 1,
"description": "DEX project name (e.g. uniswap, pancakeswap, aerodrome). Exactly one of project / address is required. Example: uniswap."
},
"group_by": {
"enum": [
"total",
"day"
],
"type": "string",
"default": "total",
"description": "total = single aggregate; day = daily series (newest first). Defaults to \"total\"."
},
"time_range": {
"enum": [
"1d",
"7d",
"30d",
"90d"
],
"type": "string",
"default": "7d",
"description": "Look-back window (hard 90d cap). Overridden by from/to when set. Defaults to \"7d\"."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Result schema
Output fields have not been documented yet.
Additional notes
Measure a DEX project's or router contract's on-chain activity
How to use this Tool
Use the deployed input fields below. Required fields must be supplied; optional filters narrow the result.
queryParams.to (Optional): End of range — Unix seconds or YYYY-MM-DD. Without from, the window is time_range ending at to. Example: 2025-02-01.
queryParams.from (Optional): Start of range — Unix seconds or YYYY-MM-DD. With to, the range may span at most 90 days. Example: 2025-01-01.
queryParams.chain (Required): Chain to query. Example: ethereum.
queryParams.address (Optional): A specific router/contract measured as tx_to. Exactly one of project / address is required. Example: 0x1111111254eeb25477b68fb85ed929f73a960582.
queryParams.project (Optional): DEX project name (e.g. uniswap, pancakeswap, aerodrome). Exactly one of project / address is required. Example: uniswap.
queryParams.group_by (Optional): total = single aggregate; day = daily series (newest first). Defaults to "total".
queryParams.time_range (Optional): Look-back window (hard 90d cap). Overridden by from/to when set. Defaults to "7d".
What this Tool returns
Returns time buckets with recorded trades, active traders, USD volume and pricing enrichment coverage.
Response fields and how to read them
The table follows the official response contract, including nested fields and useful response metadata. [] denotes an array item. Required means required within its parent object, not that a conditional parent always exists. A nullable type permits null; an optional field can be absent. Use the documented conditions below to distinguish missing, empty and zero values. Units and reporting windows apply only where explicitly documented.
Field, type and presence
Meaning and conditions
data.[].active_traders
integer; Required within parent; format: int64
data.[].enriched_ratio
number; Optional within parent; format: double
Fraction of trades that are USD-priced (0..1) — lets the caller judge volume_usd completeness. Absent when there are no trades in the window.
data.[].timestamp
integer; Optional within parent; format: int64
Start-of-day Unix seconds; present only when group_by=day.
data.[].trades
integer; Required within parent; format: int64
Trade count.
data.[].volume_usd
number; Optional within parent; format: double
USD volume. Absent when no trades in the window are USD-priced; undercounts recent days (USD pricing lags ~3 days).
meta.cached
boolean; Required within parent
Whether this response was served from cache
meta.credits_used
integer; Required within parent; format: int64
Credits deducted for this request
meta.empty_reason
string; Optional within parent
Hint explaining why the data array is empty, when applicable
meta.has_more
boolean; Optional within parent
Whether more items may exist beyond this response. For offset-paged endpoints, continue with a larger offset. For time-series endpoints without offset/cursor controls, true means the requested time range hit an upstream cap; narrow from/to to continue. Omitted when exhaustion cannot be proven.
meta.limit
integer; Required within parent; format: int64
Maximum number of items returned in this response
meta.offset
integer; Required within parent; format: int64
Number of items skipped (pagination offset)
meta.total
integer; Optional within parent; format: int64
Total number of matching items (before pagination). Omitted when total is unknown.
meta.watermark
integer; Optional within parent; format: int64
Warehouse watermark (Unix seconds) this response was computed at, on warehouse-backed endpoints (e.g. Hyperliquid /trades/aggregate) — rows up to this time come from the warehouse, newer rows from the live tail. Omitted elsewhere.
Coverage, units and freshness
The chain dataset updates on a daily cycle and USD enrichment may lag. Use enriched_ratio to assess whether monetary totals are complete.
Inspect any returned observation time, cache status, watermark, pagination and errors using their documented meanings. A successful request alone does not establish complete coverage. Where no freshness or completeness guarantee is documented, treat it as unknown. Saved Examples are historical and viewing them does not refresh data or execute a new call.
Data source and references
Surf supplies this endpoint through its Data API. Response contract and deployed Tool inputs reviewed on 2026-10-03 against official OpenAPI v0.2.102. This is a contract review date, not a data observation time. Coverage depends on the selected endpoint and request.
Use one Toolmu account and a shared prepaid balance across available Tools. Pay per use; no separate supplier subscription is required. The current execution ceiling for this Tool is 0.0144 Toolmu credits per call. This is a maximum, not the settled charge. Before execution, get the current Tool contract and check availability, the latest maximumCredits, your balance and budget. Supplier response credits_used, when present, describes supplier API credits and is not the Toolmu customer charge.
One-week overview
Example request: Check [Uniswap] on [Ethereum] for [the last 7 days].
Example request: Show daily activity for [PancakeSwap] on [BNB Chain] from [2026-09-01] to [2026-09-30].
Check [Uniswap] on [Ethereum, Base, BNB Chain, Arbitrum, or Tron]. Share the app name or its public link; no contract number is needed. Default: last 7 days. Ask for up to 90 days or a daily view. Data refreshes daily; recent dollar volume may lag about 3 days.
Trade counts and active traders
Example request: How many trades and active traders did [Aerodrome] have on [Base] over [the last 30 days]?
Questions about this tool.
Inputs, results and details to know before running it.
queryParams.to (Optional): End of range — Unix seconds or YYYY-MM-DD. Without from, the window is time_range ending at to. Example: 2025-02-01. queryParams.from (Optional): Start of range — Unix seconds or YYYY-MM-DD. With to, the range may span at most 90 days. Example: 2025-01-01. queryParams.chain (Required): Chain to query. Example: ethereum. queryParams.address (Optional): A specific router/contract measured as tx_to. Exactly one of project / address is required. Example: 0x1111111254eeb25477b68fb85ed929f73a960582. queryParams.project (Optional): DEX project name (e.g. uniswap, pancakeswap, aerodrome). Exactly one of project / address is required. Example: uniswap. queryParams.group_by (Optional): total = single aggregate; day = daily series (newest first). Defaults to "total". queryParams.time_range (Optional): Look-back window (hard 90d cap). Overridden by from/to when set. Defaults to "7d".
Returns time buckets with recorded trades, active traders, USD volume and pricing enrichment coverage.
The chain dataset updates on a daily cycle and USD enrichment may lag. Use enriched_ratio to assess whether monetary totals are complete.
Use one Toolmu account and a shared prepaid balance across available Tools. Pay per use; no separate supplier subscription is required. The current execution ceiling for this Tool is 0.0144 Toolmu credits per call. This is a maximum, not the settled charge. Before execution, get the current Tool contract and check availability, the latest maximumCredits, your balance and budget. Supplier response credits_used, when present, describes supplier API credits and is not the Toolmu customer charge.
Ask your agent to Measure a DEX project's or router contract's on-chain activity. Provide the required inputs above. If Toolmu is already connected, reuse that connection; otherwise use the setup instructions on this page. Before a paid execution, the agent must read the current Tool contract and check availability, the credit ceiling, balance, budget and your authorization. It should then execute the Tool and explain the returned fields and limitations.
Inspect any returned observation time, cache status, watermark, pagination and errors using their documented meanings. A successful request alone does not establish complete coverage. Where no freshness or completeness guarantee is documented, treat it as unknown. Saved Examples are historical and viewing them does not refresh data or execute a new call.