{"openapi":"3.1.0","info":{"title":"Zerion (BYOK) API","version":"0.1.0","description":"Zerion (BYOK) lets an AI assistant read your own Zerion data through the Zerion API with a key you supply (Zerion API key (used as the Basic auth user name)). Read-only: 11 tools (get_wallet_portfolio, list_wallet_positions, list_wallet_transactions, get_wallet_pnl, get_wallet_balance_chart, list_wallet_nfts, list_tokens, get_token, get_token_price_chart, list_chains, list_gas_prices). The BYOK...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-zerion.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-zerion/docs"},"termsOfService":"https://connectorbay.com/byok-zerion/terms"},"servers":[{"url":"https://byok-zerion.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-zerion/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_wallet_portfolio":{"post":{"operationId":"get_wallet_portfolio","summary":"Get a wallet's total portfolio value, 1 day change and distribution by position type and chain. Use for \"What is the tot","description":"Get a wallet's total portfolio value, 1 day change and distribution by position type and chain. Use for \"What is the total value of this wallet and how did it change today\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"address":{"description":"Wallet address: an EVM address (0x...) or a Solana address.","maxLength":200,"title":"Address","type":"string"},"currency":{"anyOf":[{"enum":["usd","eur","gbp","eth","btc","jpy","inr","cad","aud","chf","cny","krw","rub","nzd","try","zar"],"type":"string"},{"type":"null"}],"default":"usd","description":"Currency for prices and values: usd (default), eur, gbp, eth, btc and others the API lists.","title":"Currency"},"positions_filter":{"anyOf":[{"enum":["only_simple","only_complex","no_filter"],"type":"string"},{"type":"null"}],"default":"only_simple","description":"Which positions count: only_simple (tokens and native coins, default), only_complex (DeFi) or no_filter.","title":"Positions Filter"}},"required":["address"],"title":"get_wallet_portfolioArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_wallet_positions":{"post":{"operationId":"list_wallet_positions","summary":"List a wallet's token and DeFi positions across chains with quantity, price, value, 1 day change, protocol and chain, hi","description":"List a wallet's token and DeFi positions across chains with quantity, price, value, 1 day change, protocol and chain, highest value first by default. Use for \"Which tokens does this wallet hold and what are they worth\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"address":{"description":"Wallet address: an EVM address (0x...) or a Solana address.","maxLength":200,"title":"Address","type":"string"},"currency":{"anyOf":[{"enum":["usd","eur","gbp","eth","btc","jpy","inr","cad","aud","chf","cny","krw","rub","nzd","try","zar"],"type":"string"},{"type":"null"}],"default":"usd","description":"Currency for prices and values: usd (default), eur, gbp, eth, btc and others the API lists.","title":"Currency"},"positions_filter":{"anyOf":[{"enum":["only_simple","only_complex","no_filter"],"type":"string"},{"type":"null"}],"default":"only_simple","description":"Which positions count: only_simple (tokens and native coins, default), only_complex (DeFi) or no_filter.","title":"Positions Filter"},"chain_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated chain ids to keep (see list_chains), for example ethereum,base. Only chains that report positions.","title":"Chain Ids"},"trash_filter":{"anyOf":[{"enum":["only_non_trash","only_trash","no_filter"],"type":"string"},{"type":"null"}],"default":"only_non_trash","description":"Spam handling: only_non_trash, only_trash or no_filter (default only_non_trash).","title":"Trash Filter"},"sort":{"anyOf":[{"enum":["value","-value"],"type":"string"},{"type":"null"}],"default":"value","description":"value (highest value first, default) or -value (lowest first).","title":"Sort"}},"required":["address"],"title":"list_wallet_positionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_wallet_transactions":{"post":{"operationId":"list_wallet_transactions","summary":"List a wallet's transactions across chains with type, hash, time, status, sender, recipient, fee and token transfers; fi","description":"List a wallet's transactions across chains with type, hash, time, status, sender, recipient, fee and token transfers; filter by chain, type, asset or time. Use for \"What were the latest transactions of this wallet\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"address":{"description":"Wallet address: an EVM address (0x...) or a Solana address.","maxLength":200,"title":"Address","type":"string"},"currency":{"anyOf":[{"enum":["usd","eur","gbp","eth","btc","jpy","inr","cad","aud","chf","cny","krw","rub","nzd","try","zar"],"type":"string"},{"type":"null"}],"default":"usd","description":"Currency for prices and values: usd (default), eur, gbp, eth, btc and others the API lists.","title":"Currency"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page (1 to 100).","title":"Page Size"},"page_after":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the value of page[after] inside links.next of the previous answer.","title":"Page After"},"chain_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated chain ids to keep (see list_chains), for example ethereum,base. Only chains that report transactions.","title":"Chain Ids"},"operation_types":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated operation types such as trade, send, receive, approve, mint.","title":"Operation Types"},"min_mined_at":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions mined at or after this Unix time in milliseconds.","title":"Min Mined At"},"max_mined_at":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions mined at or before this Unix time in milliseconds.","title":"Max Mined At"},"search_query":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Full-text search, 2 to 64 characters.","title":"Search Query"},"trash_filter":{"anyOf":[{"enum":["only_non_trash","only_trash","no_filter"],"type":"string"},{"type":"null"}],"default":"no_filter","description":"Spam handling: only_non_trash, only_trash or no_filter (default no_filter).","title":"Trash Filter"}},"required":["address"],"title":"list_wallet_transactionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_wallet_pnl":{"post":{"operationId":"get_wallet_pnl","summary":"Get a wallet's profit and loss: realized and unrealized gain, total fees, amount invested and percentages. Use for \"What","description":"Get a wallet's profit and loss: realized and unrealized gain, total fees, amount invested and percentages. Use for \"What is this wallet's total profit and loss\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"address":{"description":"Wallet address: an EVM address (0x...) or a Solana address.","maxLength":200,"title":"Address","type":"string"},"currency":{"anyOf":[{"enum":["usd","eur","gbp","eth","btc","jpy","inr","cad","aud","chf","cny","krw","rub","nzd","try","zar"],"type":"string"},{"type":"null"}],"default":"usd","description":"Currency for prices and values: usd (default), eur, gbp, eth, btc and others the API lists.","title":"Currency"},"chain_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated chain ids to keep (see list_chains), for example ethereum,base. Only chains that report both positions and transactions.","title":"Chain Ids"},"since":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Count sales since this Unix time in milliseconds.","title":"Since"},"till":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Count sales until this Unix time in milliseconds.","title":"Till"}},"required":["address"],"title":"get_wallet_pnlArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_wallet_balance_chart":{"post":{"operationId":"get_wallet_balance_chart","summary":"Get the wallet's total balance over time as chart points for a period. Use for \"How did this wallet's balance change ove","description":"Get the wallet's total balance over time as chart points for a period. Use for \"How did this wallet's balance change over the last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"address":{"description":"Wallet address: an EVM address (0x...) or a Solana address.","maxLength":200,"title":"Address","type":"string"},"chart_period":{"description":"Window: hour, day, week, month, 3months, 6months, year, 5years or max.","enum":["hour","day","week","month","3months","6months","year","5years","max"],"title":"Chart Period","type":"string"},"currency":{"anyOf":[{"enum":["usd","eur","gbp","eth","btc","jpy","inr","cad","aud","chf","cny","krw","rub","nzd","try","zar"],"type":"string"},{"type":"null"}],"default":"usd","description":"Currency for prices and values: usd (default), eur, gbp, eth, btc and others the API lists.","title":"Currency"},"positions_filter":{"anyOf":[{"enum":["only_simple","only_complex","no_filter"],"type":"string"},{"type":"null"}],"default":"only_simple","description":"Which positions count: only_simple (tokens and native coins, default), only_complex (DeFi) or no_filter.","title":"Positions Filter"},"chain_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated chain ids to keep (see list_chains), for example ethereum,base. .","title":"Chain Ids"}},"required":["address","chart_period"],"title":"get_wallet_balance_chartArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_wallet_nfts":{"post":{"operationId":"list_wallet_nfts","summary":"List the NFTs a wallet holds with name, collection, contract, token id, floor value and chain. Use for \"Which NFTs does ","description":"List the NFTs a wallet holds with name, collection, contract, token id, floor value and chain. Use for \"Which NFTs does this wallet own\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"address":{"description":"Wallet address: an EVM address (0x...) or a Solana address.","maxLength":200,"title":"Address","type":"string"},"currency":{"anyOf":[{"enum":["usd","eur","gbp","eth","btc","jpy","inr","cad","aud","chf","cny","krw","rub","nzd","try","zar"],"type":"string"},{"type":"null"}],"default":"usd","description":"Currency for prices and values: usd (default), eur, gbp, eth, btc and others the API lists.","title":"Currency"},"page_size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page (1 to 500).","title":"Page Size"},"page_after":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the value of page[after] inside links.next of the previous answer.","title":"Page After"},"chain_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated chain ids to keep (see list_chains), for example ethereum,base. .","title":"Chain Ids"},"sort":{"anyOf":[{"enum":["created_at","-created_at","floor_price","-floor_price"],"type":"string"},{"type":"null"}],"default":null,"description":"Order: created_at, -created_at, floor_price or -floor_price.","title":"Sort"}},"required":["address"],"title":"list_wallet_nftsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tokens":{"post":{"operationId":"list_tokens","summary":"Search or rank tokens (fungible assets) by name, symbol, chain or address with price, market cap, supply and 1 day chang","description":"Search or rank tokens (fungible assets) by name, symbol, chain or address with price, market cap, supply and 1 day change. Use for \"Find the token USDC and show its market cap\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency":{"anyOf":[{"enum":["usd","eur","gbp","eth","btc","jpy","inr","cad","aud","chf","cny","krw","rub","nzd","try","zar"],"type":"string"},{"type":"null"}],"default":"usd","description":"Currency for prices and values: usd (default), eur, gbp, eth, btc and others the API lists.","title":"Currency"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page (1 to 100).","title":"Page Size"},"page_after":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the value of page[after] inside links.next of the previous answer.","title":"Page After"},"search_query":{"anyOf":[{"maxLength":66,"type":"string"},{"type":"null"}],"default":null,"description":"Name or symbol to search, 1 to 66 characters.","title":"Search Query"},"implementation_chain_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only tokens on this chain id.","title":"Implementation Chain Id"},"implementation_address":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only tokens at this contract address.","title":"Implementation Address"},"sort":{"anyOf":[{"enum":["-market_data.market_cap","market_data.market_cap","-market_data.price.last","market_data.price.last","-market_data.price.percent_change_1d","market_data.price.percent_change_1d","-market_data.trading_volumes.volume_1d","market_data.trading_volumes.volume_1d"],"type":"string"},{"type":"null"}],"default":null,"description":"Order, for example -market_data.market_cap (largest market cap first) or -market_data.price.percent_change_1d.","title":"Sort"}},"title":"list_tokensArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_token":{"post":{"operationId":"get_token","summary":"Get one token by Zerion fungible id: name, symbol, description, price, market cap, supply, price changes and the contrac","description":"Get one token by Zerion fungible id: name, symbol, description, price, market cap, supply, price changes and the contract on each chain. Use for \"What is the market data of the token with this Zerion id\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"fungible_id":{"description":"Zerion fungible id, for example eth for Ether (ids come from list_tokens).","maxLength":100,"title":"Fungible Id","type":"string"},"currency":{"anyOf":[{"enum":["usd","eur","gbp","eth","btc","jpy","inr","cad","aud","chf","cny","krw","rub","nzd","try","zar"],"type":"string"},{"type":"null"}],"default":"usd","description":"Currency for prices and values: usd (default), eur, gbp, eth, btc and others the API lists.","title":"Currency"}},"required":["fungible_id"],"title":"get_tokenArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_token_price_chart":{"post":{"operationId":"get_token_price_chart","summary":"Get a token's price over time as chart points with first, min, average, max and last price for a period. Use for \"How di","description":"Get a token's price over time as chart points with first, min, average, max and last price for a period. Use for \"How did ETH's price move over the last year\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"fungible_id":{"description":"Zerion fungible id (from list_tokens).","maxLength":100,"title":"Fungible Id","type":"string"},"chart_period":{"description":"Window: hour, day, week, month, 3months, 6months, year, 5years or max.","enum":["hour","day","week","month","3months","6months","year","5years","max"],"title":"Chart Period","type":"string"},"currency":{"anyOf":[{"enum":["usd","eur","gbp","eth","btc","jpy","inr","cad","aud","chf","cny","krw","rub","nzd","try","zar"],"type":"string"},{"type":"null"}],"default":"usd","description":"Currency for prices and values: usd (default), eur, gbp, eth, btc and others the API lists.","title":"Currency"}},"required":["fungible_id","chart_period"],"title":"get_token_price_chartArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_chains":{"post":{"operationId":"list_chains","summary":"List the blockchains Zerion supports with name, explorer and flags for positions, transactions, NFTs and trading support","description":"List the blockchains Zerion supports with name, explorer and flags for positions, transactions, NFTs and trading support. Use for \"Which chains does Zerion support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_chainsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_gas_prices":{"post":{"operationId":"list_gas_prices","summary":"List current gas prices per chain and gas type. Use for \"What is the gas price on Ethereum right now\".","description":"List current gas prices per chain and gas type. Use for \"What is the gas price on Ethereum right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chain_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated chain ids, for example ethereum,base.","title":"Chain Ids"},"gas_types":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated gas types to keep.","title":"Gas Types"}},"title":"list_gas_pricesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}