{"openapi":"3.1.0","info":{"title":"Helius (BYOK) API","version":"0.1.0","description":"Helius (BYOK) lets an AI assistant read your own Helius data through the Helius API with a key you supply (Helius API key). Read-only: 6 tools (get_wallet_identity, get_wallet_balances, get_wallet_balance_at, get_wallet_history, get_wallet_transfers, get_wallet_funding_source). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-helius.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-helius/docs"},"termsOfService":"https://connectorbay.com/byok-helius/terms"},"servers":[{"url":"https://byok-helius.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-helius/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_identity":{"post":{"operationId":"get_wallet_identity","summary":"Look up whether a Solana wallet is a known entity such as an exchange or protocol: name, category, type and tags. Return","description":"Look up whether a Solana wallet is a known entity such as an exchange or protocol: name, category, type and tags. Returns not-found for unknown wallets. Uses plan credits. Use for \"Is this Solana address a known exchange wallet\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wallet":{"description":"Solana wallet address (base58), for example 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY. A .sol domain name also works for identity lookups.","maxLength":100,"title":"Wallet","type":"string"}},"required":["wallet"],"title":"get_wallet_identityArguments","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_balances":{"post":{"operationId":"get_wallet_balances","summary":"List a Solana wallet's token balances (SOL and SPL tokens) with price and USD value, sorted by value, optionally with NF","description":"List a Solana wallet's token balances (SOL and SPL tokens) with price and USD value, sorted by value, optionally with NFTs. Prices cover the top 10,000 tokens and may be null. Uses plan credits. Use for \"What tokens does this Solana wallet hold and what are they worth\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wallet":{"description":"Solana wallet address (base58), for example 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY. A .sol domain name also works for identity lookups.","maxLength":100,"title":"Wallet","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Tokens per page (1 to 100).","title":"Limit"},"show_zero_balance":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include tokens with a zero balance.","title":"Show Zero Balance"},"show_native":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"False to leave out native SOL (shown by default).","title":"Show Native"},"show_nfts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to also return NFTs held by the wallet.","title":"Show Nfts"}},"required":["wallet"],"title":"get_wallet_balancesArguments","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_at":{"post":{"operationId":"get_wallet_balance_at","summary":"Get a wallet's balance of one token (or native SOL) at a past moment, given as Unix time, datetime or slot. Give exactly","description":"Get a wallet's balance of one token (or native SOL) at a past moment, given as Unix time, datetime or slot. Give exactly one of time, datetime and slot. Uses plan credits. Use for \"How much USDC did this Solana wallet hold on 2025-01-10\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wallet":{"description":"Solana wallet address (base58), for example 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY. A .sol domain name also works for identity lookups.","maxLength":100,"title":"Wallet","type":"string"},"mint":{"description":"Token mint address; use So11111111111111111111111111111111111111111 for native SOL.","maxLength":100,"title":"Mint","type":"string"},"time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Unix time in seconds.","title":"Time"},"datetime":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Date or time such as 2025-01-10 19:20:00, read as UTC unless it has an offset.","title":"Datetime"},"slot":{"anyOf":[{"maximum":10000000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Solana slot number for an exact, repeatable result.","title":"Slot"}},"required":["wallet","mint"],"title":"get_wallet_balance_atArguments","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_history":{"post":{"operationId":"get_wallet_history","summary":"List a Solana wallet's transactions, newest first, with time, fee, error flag and the balance change of each token. Page","description":"List a Solana wallet's transactions, newest first, with time, fee, error flag and the balance change of each token. Page with the cursor in pagination. Uses plan credits. Use for \"What did this Solana wallet do recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wallet":{"description":"Solana wallet address (base58), for example 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY. A .sol domain name also works for identity lookups.","maxLength":100,"title":"Wallet","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Transactions per page (1 to 100).","title":"Limit"},"before":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Return transactions before this signature (use pagination.nextCursor).","title":"Before"},"after":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Return transactions after this signature, for ascending pagination.","title":"After"},"type":{"anyOf":[{"enum":["SWAP","TRANSFER","NFT_SALE","NFT_BID","NFT_LISTING","NFT_MINT","NFT_CANCEL_LISTING","TOKEN_MINT","BURN","COMPRESSED_NFT_MINT","COMPRESSED_NFT_TRANSFER","COMPRESSED_NFT_BURN","INIT_STAKE","MERGE_STAKE","SPLIT_STAKE","EXECUTE_TRANSACTION"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this transaction type, for example SWAP, TRANSFER or NFT_SALE.","title":"Type"},"token_accounts":{"anyOf":[{"enum":["none","balanceChanged","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Token account handling: none, balanceChanged (default, hides spam) or all.","title":"Token Accounts"}},"required":["wallet"],"title":"get_wallet_historyArguments","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_transfers":{"post":{"operationId":"get_wallet_transfers","summary":"List incoming and outgoing token transfers of a Solana wallet with direction, counterparty, token and amount. Page with ","description":"List incoming and outgoing token transfers of a Solana wallet with direction, counterparty, token and amount. Page with the cursor in pagination. Uses plan credits. Use for \"Who sent this Solana wallet tokens recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wallet":{"description":"Solana wallet address (base58), for example 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY. A .sol domain name also works for identity lookups.","maxLength":100,"title":"Wallet","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Transfers per page (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous response's pagination.nextCursor.","title":"Cursor"}},"required":["wallet"],"title":"get_wallet_transfersArguments","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_funding_source":{"post":{"operationId":"get_wallet_funding_source","summary":"Show who sent a Solana wallet its first SOL: funder address, funder name and type if known, amount and date. Returns not","description":"Show who sent a Solana wallet its first SOL: funder address, funder name and type if known, amount and date. Returns not-found if it never received SOL. Uses plan credits. Use for \"Which address first funded this Solana wallet\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wallet":{"description":"Solana wallet address (base58), for example 86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY. A .sol domain name also works for identity lookups.","maxLength":100,"title":"Wallet","type":"string"}},"required":["wallet"],"title":"get_wallet_funding_sourceArguments","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}}}}