CONNECT APP
Build with Codex
Real-time, enriched blockchain data for 70 million+ tokens on 80+ networks
Developer Tools
- API key
MCP
Give your agent Codex tools
Every Codex action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Codex account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "codex",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Filter Tokens:
const result = await mcp.callTool({
name: "codex-filter-tokens",
arguments: {
phrase: "Search Phrase",
networkId: 10,
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "codex",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Filter Tokens:
result = await session.call_tool("codex-filter-tokens", {
"phrase": "Search Phrase",
"networkId": 10,
})API PROXY
Call the Codex API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Codex API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.example.com/v1/me",
})
// Any allowed Codex endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.example.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Codex actions from your backend
Connect a user's Codex account once, then run Filter Tokens on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "codex-filter-tokens",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
codex: { authProvisionId: "apn_xxxxxxx" },
phrase: "Search Phrase",
networkId: 10,
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="codex-filter-tokens",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"codex": {"authProvisionId": "apn_xxxxxxx"},
"phrase": "Search Phrase",
"networkId": 10,
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "codex-filter-tokens",
"configured_props": {
"codex": { "authProvisionId": "apn_xxxxxxx" },
"phrase": "Search Phrase",
"networkId": 10
}
}'TOOLS
Codex actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Filter Tokens
actionDiscovers and ranks tokens by on-chain signals such as volume, trending score, liquidity, or market cap. Use this to find trending tokens, top movers, or tokens matching a search phrase. To look up a specific token by its known contract address, use Get Token Details instead. Filter to a specific network by passing a numericnetworkId(e.g.,1for Ethereum,137for Polygon). Use Get Networks to find numeric network IDs. See the documentationRead-onlyv0.0.2 -
Get Networks
actionReturns all 80+ blockchain networks supported by Codex with their numeric IDs and names. Call this first to resolvenetworkIdvalues required by every other Codex tool. Example: Ethereum = 1, Polygon = 137, BNB Chain = 56, Arbitrum = 42161. See the documentationRead-onlyv0.0.2 -
Get Pair Stats
actionReturns metadata and trading statistics for a token pair: price, volume, liquidity, and price changes across multiple timeframes. Use this to analyze DEX pair activity (e.g., Uniswap V2/V3 pools).statsTypeFILTEREDremoves wash trades for cleaner signal;UNFILTEREDincludes all activity. Use Get Networks to resolve the numericnetworkIdif needed. See the documentationRead-onlyv0.0.2 -
Get Prediction Market Data
actionReturns prediction market outcomes (Polymarket, Kalshi) with current prices and implied probabilities. Filter by keyword phrase, market IDs, event IDs, protocol, status, liquidity, volume, and more. Requires a Codex Growth or Enterprise plan — returns an error on free/Starter plans. Supports offset-based pagination — passoffset(and optionallimit) to fetch subsequent pages (e.g.,offset: 20withlimit: 20fetches the second page). See the documentationRead-onlyv0.0.2 -
Get Token Chart
actionReturns OHLCV (open, high, low, close, volume) candlestick bars for a token over a time range. Use this for price charts, trend analysis, or historical data. Use Get Networks to resolvenetworkIdif needed.fromandtoare Unix timestamps in seconds (e.g., current time =Math.floor(Date.now() / 1000)). Valid resolutions:1(1 min),5,15,30,60(1 hr),240(4 hr),720(12 hr),1D,7D. See the documentationRead-onlyv0.0.2 -
Get Token Details
actionFetches current price, market cap, volume, liquidity, and metadata for one or more specific tokens by contract address. Use this when you already know the token address(es) and want to look up their current data. To discover tokens by name or ranking instead, use Filter Tokens. Use Get Networks first to resolve the numericnetworkIdif needed. Accepts a JSON array of{address, networkId}objects — example:[{"address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "networkId": 1}]. See the documentationRead-onlyv0.0.2 -
Get Token Events
actionReturns on-chain trading events (swaps, mints, burns) for a token or pair address. Each event includes event type, USD price, timestamp, transaction hash, and maker address. Filter by event type, wallet address, price range, timestamp window, and more. Use Get Networks to resolve the numericnetworkIdif needed. Supports cursor-based pagination — pass thecursorfrom the previous response to fetch the next page. See the documentationRead-onlyv0.0.2 -
Get Token Holders
actionReturns the list of token holders with their balances and the top-10 holder concentration percentage. Use this to analyze token distribution and whale concentration. Use Get Networks to resolve the numericnetworkIdif needed. Supports cursor-based pagination — passcursorfrom the previous response to fetch the next page. See the documentationRead-onlyv0.0.2 -
Get Wallet Balances
actionReturns all token holdings and USD values for a wallet address on a specific blockchain network. Use this to inspect what tokens a wallet holds. Use Get Networks to resolve the numericnetworkIdif needed (e.g., 1 = Ethereum, 137 = Polygon). See the documentationRead-onlyv0.0.2 -
Get Wallet Transactions
actionReturns token holdings and aggregated trading stats for one or more wallet addresses. Each result includes token balance, realized P&L, buy/sell counts, and average hold period across 1d, 1w, 30d, and 1y windows. Filter by wallet address, token, network, labels, or numeric range filters. Use Get Networks to resolve the numericnetworkIdif needed. Supports offset-based pagination — passoffset(and optionallimit) to fetch subsequent pages. See the documentationRead-onlyv0.0.2
No Codex triggers are available yet.
- App slug
- codex
- Authentication
- API key
- Categories
- Developer Tools
- Actions
- 10
- Triggers
- 0
- API proxy
- Available