From ea12fc3273387476e3a65cabf500f51428daeb33 Mon Sep 17 00:00:00 2001 From: Shane Auerbach Date: Tue, 10 Feb 2026 12:10:35 -0800 Subject: [PATCH 1/5] Document token_address and activity_type filters on activity endpoint - Add token_address and activity_type query params to OpenAPI spec - Update activity.mdx with a Filtering section explaining both params - token_address has been live since Oct 2025 but was never documented - activity_type is being added in duneanalytics/echo#2369 Closes API-4090 Co-Authored-By: Claude Opus 4.6 --- evm/activity.mdx | 15 +++++++++++++-- evm/openapi/activity.json | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/evm/activity.mdx b/evm/activity.mdx index 8d929d1..b86e24b 100644 --- a/evm/activity.mdx +++ b/evm/activity.mdx @@ -86,9 +86,20 @@ If you request `?chain_ids=1,9999,10`, the API returns activity for chains 1 and Check the [Supported Chains](/evm/supported-chains) page to see which chains are currently supported for the Activity endpoint. -## Token Filtering +## Filtering -We include all the data needed for custom filtering in the responses, allowing you to implement your own filtering logic. For a detailed explanation of our approach, see our [Token Filtering](/token-filtering) guide. +You can filter activities server-side using the following query parameters: + +- **`token_address`** — Filter by token contract address. For example, pass the USDC contract address to return only USDC-related activity. +- **`activity_type`** — Filter by activity type. Accepted values: `send`, `receive`, `mint`, `burn`, `swap`, `approve`, `call`. + +Both filters are optional and can be combined. For example, to get only USDC receives: + +``` +GET /v1/evm/activity/{address}?token_address=0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48&activity_type=receive +``` + +For additional client-side filtering, we include all the data needed in the responses. See our [Token Filtering](/token-filtering) guide for more details. ## Compute Unit Cost diff --git a/evm/openapi/activity.json b/evm/openapi/activity.json index 7da035f..e4d85fc 100644 --- a/evm/openapi/activity.json +++ b/evm/openapi/activity.json @@ -73,6 +73,26 @@ "maximum": 100, "default": 20 } + }, + { + "name": "token_address", + "in": "query", + "description": "Filter activities by token contract address. Only activities involving this specific token will be returned. For example, use the USDC contract address to get only USDC transfers.", + "required": false, + "schema": { + "type": "string" + }, + "example": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + { + "name": "activity_type", + "in": "query", + "description": "Filter activities by type. Only activities matching the specified type will be returned.", + "required": false, + "schema": { + "type": "string", + "enum": ["send", "receive", "mint", "burn", "swap", "approve", "call"] + } } ], "responses": { From 4252905a28620ea6b6414675500deecf2970564e Mon Sep 17 00:00:00 2001 From: Shane Auerbach Date: Tue, 10 Feb 2026 12:20:28 -0800 Subject: [PATCH 2/5] Add asset_type filter to activity endpoint docs Adds documentation for the new asset_type query parameter (native, erc20, erc721, erc1155) to both the OpenAPI spec and the activity.mdx page. Co-Authored-By: Claude Opus 4.6 --- evm/activity.mdx | 11 +++++++++-- evm/openapi/activity.json | 10 ++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/evm/activity.mdx b/evm/activity.mdx index b86e24b..318b0e2 100644 --- a/evm/activity.mdx +++ b/evm/activity.mdx @@ -92,11 +92,18 @@ You can filter activities server-side using the following query parameters: - **`token_address`** — Filter by token contract address. For example, pass the USDC contract address to return only USDC-related activity. - **`activity_type`** — Filter by activity type. Accepted values: `send`, `receive`, `mint`, `burn`, `swap`, `approve`, `call`. +- **`asset_type`** — Filter by asset standard. Accepted values: `native`, `erc20`, `erc721`, `erc1155`. Use `native` to get only native token transfers (e.g. ETH). Contract call activities have no asset type and are excluded when this filter is set. -Both filters are optional and can be combined. For example, to get only USDC receives: +All filters are optional and can be combined. For example, to get only native token receives: ``` -GET /v1/evm/activity/{address}?token_address=0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48&activity_type=receive +GET /v1/evm/activity/{address}?activity_type=receive&asset_type=native +``` + +Or to get only USDC sends: + +``` +GET /v1/evm/activity/{address}?token_address=0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48&activity_type=send ``` For additional client-side filtering, we include all the data needed in the responses. See our [Token Filtering](/token-filtering) guide for more details. diff --git a/evm/openapi/activity.json b/evm/openapi/activity.json index e4d85fc..bbdf696 100644 --- a/evm/openapi/activity.json +++ b/evm/openapi/activity.json @@ -93,6 +93,16 @@ "type": "string", "enum": ["send", "receive", "mint", "burn", "swap", "approve", "call"] } + }, + { + "name": "asset_type", + "in": "query", + "description": "Filter activities by asset standard. Use `native` to get only native token transfers (e.g. ETH), or `erc20`, `erc721`, `erc1155` for specific token standards. Contract call activities have no asset type and are excluded when this filter is set.", + "required": false, + "schema": { + "type": "string", + "enum": ["native", "erc20", "erc721", "erc1155"] + } } ], "responses": { From ca4b74ff90ddc60e0c967736be0f75d8bb7a1d86 Mon Sep 17 00:00:00 2001 From: Shane Auerbach Date: Tue, 10 Feb 2026 12:42:38 -0800 Subject: [PATCH 3/5] Document token_address filter exclusion of swap/call/native activities Co-Authored-By: Claude Opus 4.6 --- evm/activity.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evm/activity.mdx b/evm/activity.mdx index 318b0e2..2a26e87 100644 --- a/evm/activity.mdx +++ b/evm/activity.mdx @@ -90,7 +90,7 @@ If you request `?chain_ids=1,9999,10`, the API returns activity for chains 1 and You can filter activities server-side using the following query parameters: -- **`token_address`** — Filter by token contract address. For example, pass the USDC contract address to return only USDC-related activity. +- **`token_address`** — Filter by token contract address. For example, pass the USDC contract address to return only USDC-related activity. Note: swap and call activities do not have a single token address, so they are always excluded when this filter is set. Native transfers are also excluded since they have no token contract. - **`activity_type`** — Filter by activity type. Accepted values: `send`, `receive`, `mint`, `burn`, `swap`, `approve`, `call`. - **`asset_type`** — Filter by asset standard. Accepted values: `native`, `erc20`, `erc721`, `erc1155`. Use `native` to get only native token transfers (e.g. ETH). Contract call activities have no asset type and are excluded when this filter is set. From 31aa9f20a96fd92c61468e7e16e530b89e2d1a97 Mon Sep 17 00:00:00 2001 From: Shane Auerbach Date: Tue, 10 Feb 2026 12:46:27 -0800 Subject: [PATCH 4/5] Update docs for comma-separated activity_type/asset_type filters Also documents that token_address excludes swap/call/native activities. Co-Authored-By: Claude Opus 4.6 --- evm/activity.mdx | 10 ++++++++-- evm/openapi/activity.json | 16 ++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/evm/activity.mdx b/evm/activity.mdx index 2a26e87..1d3e016 100644 --- a/evm/activity.mdx +++ b/evm/activity.mdx @@ -91,8 +91,8 @@ If you request `?chain_ids=1,9999,10`, the API returns activity for chains 1 and You can filter activities server-side using the following query parameters: - **`token_address`** — Filter by token contract address. For example, pass the USDC contract address to return only USDC-related activity. Note: swap and call activities do not have a single token address, so they are always excluded when this filter is set. Native transfers are also excluded since they have no token contract. -- **`activity_type`** — Filter by activity type. Accepted values: `send`, `receive`, `mint`, `burn`, `swap`, `approve`, `call`. -- **`asset_type`** — Filter by asset standard. Accepted values: `native`, `erc20`, `erc721`, `erc1155`. Use `native` to get only native token transfers (e.g. ETH). Contract call activities have no asset type and are excluded when this filter is set. +- **`activity_type`** — Filter by activity type. Accepts a single value or a comma-separated list. Accepted values: `send`, `receive`, `mint`, `burn`, `swap`, `approve`, `call`. +- **`asset_type`** — Filter by asset standard. Accepts a single value or a comma-separated list. Accepted values: `native`, `erc20`, `erc721`, `erc1155`. Use `native` to include native token transfers (e.g. ETH). Contract call activities have no asset type and are excluded when this filter is set. All filters are optional and can be combined. For example, to get only native token receives: @@ -100,6 +100,12 @@ All filters are optional and can be combined. For example, to get only native to GET /v1/evm/activity/{address}?activity_type=receive&asset_type=native ``` +To get only sends and receives (multi-value): + +``` +GET /v1/evm/activity/{address}?activity_type=send,receive +``` + Or to get only USDC sends: ``` diff --git a/evm/openapi/activity.json b/evm/openapi/activity.json index bbdf696..ee66ae0 100644 --- a/evm/openapi/activity.json +++ b/evm/openapi/activity.json @@ -87,22 +87,22 @@ { "name": "activity_type", "in": "query", - "description": "Filter activities by type. Only activities matching the specified type will be returned.", + "description": "Filter activities by type. Provide a single value (e.g. `?activity_type=send`) or a comma-separated list (e.g. `?activity_type=send,receive`). Only activities matching one of the specified types will be returned.", "required": false, "schema": { - "type": "string", - "enum": ["send", "receive", "mint", "burn", "swap", "approve", "call"] - } + "type": "string" + }, + "example": "send,receive" }, { "name": "asset_type", "in": "query", - "description": "Filter activities by asset standard. Use `native` to get only native token transfers (e.g. ETH), or `erc20`, `erc721`, `erc1155` for specific token standards. Contract call activities have no asset type and are excluded when this filter is set.", + "description": "Filter activities by asset standard. Provide a single value (e.g. `?asset_type=native`) or a comma-separated list (e.g. `?asset_type=erc20,erc721`). Use `native` to include native token transfers (e.g. ETH). Contract call activities have no asset type and are excluded when this filter is set.", "required": false, "schema": { - "type": "string", - "enum": ["native", "erc20", "erc721", "erc1155"] - } + "type": "string" + }, + "example": "erc20" } ], "responses": { From d8a739b4fbc3d3693930d50cbdfa8076f1024a4e Mon Sep 17 00:00:00 2001 From: Shane Auerbach Date: Tue, 10 Feb 2026 12:51:04 -0800 Subject: [PATCH 5/5] Document token_address comma-separated list support Co-Authored-By: Claude Opus 4.6 --- evm/activity.mdx | 2 +- evm/openapi/activity.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/evm/activity.mdx b/evm/activity.mdx index 1d3e016..36a4056 100644 --- a/evm/activity.mdx +++ b/evm/activity.mdx @@ -90,7 +90,7 @@ If you request `?chain_ids=1,9999,10`, the API returns activity for chains 1 and You can filter activities server-side using the following query parameters: -- **`token_address`** — Filter by token contract address. For example, pass the USDC contract address to return only USDC-related activity. Note: swap and call activities do not have a single token address, so they are always excluded when this filter is set. Native transfers are also excluded since they have no token contract. +- **`token_address`** — Filter by token contract address. Accepts a single address or a comma-separated list. For example, pass the USDC contract address to return only USDC-related activity, or pass multiple addresses to match any of them. Note: swap and call activities do not have a single token address, so they are always excluded when this filter is set. Native transfers are also excluded since they have no token contract. - **`activity_type`** — Filter by activity type. Accepts a single value or a comma-separated list. Accepted values: `send`, `receive`, `mint`, `burn`, `swap`, `approve`, `call`. - **`asset_type`** — Filter by asset standard. Accepts a single value or a comma-separated list. Accepted values: `native`, `erc20`, `erc721`, `erc1155`. Use `native` to include native token transfers (e.g. ETH). Contract call activities have no asset type and are excluded when this filter is set. diff --git a/evm/openapi/activity.json b/evm/openapi/activity.json index ee66ae0..37aba12 100644 --- a/evm/openapi/activity.json +++ b/evm/openapi/activity.json @@ -77,7 +77,7 @@ { "name": "token_address", "in": "query", - "description": "Filter activities by token contract address. Only activities involving this specific token will be returned. For example, use the USDC contract address to get only USDC transfers.", + "description": "Filter activities by token contract address. Provide a single address (e.g. `?token_address=0xa0b8...`) or a comma-separated list (e.g. `?token_address=0xa0b8...,0xdac1...`). Only activities involving the specified token(s) will be returned. Swap and call activities are excluded when this filter is set, as they do not have a single token address. Native transfers are also excluded since they have no token contract.", "required": false, "schema": { "type": "string"