{"openapi":"3.1.0","info":{"title":"Tally Governance (BYOK) API","version":"0.1.0","description":"Tally Governance (BYOK) lets an AI assistant read your own Tally Governance data through the Tally Governance API with a key you supply (Tally (Cactus) API key). Read-only: 10 tools (list_chains, list_organizations, get_organization, list_governors, get_governor, list_proposals, get_proposal, list_delegates, list_proposal_votes, get_token). The BYOK key travels with each request, is used for that...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-tallyxyz.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-tallyxyz/docs"},"termsOfService":"https://connectorbay.com/byok-tallyxyz/terms"},"servers":[{"url":"https://byok-tallyxyz.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-tallyxyz/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/list_chains":{"post":{"operationId":"list_chains","summary":"List the blockchains Tally supports with id (eip155:chain id), name, block time, testnet flag and native currency. Use f","description":"List the blockchains Tally supports with id (eip155:chain id), name, block time, testnet flag and native currency. Use for \"Which chains does Tally 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_organizations":{"post":{"operationId":"list_organizations","summary":"List DAOs (organizations) on Tally with proposal, delegate and token-holder counts. Sort by id, name, explore or popular","description":"List DAOs (organizations) on Tally with proposal, delegate and token-holder counts. Sort by id, name, explore or popular; 20 per page at most. Use for \"Which are the most popular DAOs on Tally\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sort_by":{"anyOf":[{"enum":["id","name","explore","popular"],"type":"string"},{"type":"null"}],"default":"popular","description":"Order: id (creation date), name, explore (live proposals first) or popular.","title":"Sort By"},"descending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True for newest or largest first (default), false for the reverse.","title":"Descending"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 20; 20 is the API's hard limit).","title":"Limit"},"after_cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the lastCursor value from the previous answer's pageInfo.","title":"After Cursor"}},"title":"list_organizationsArguments","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_organization":{"post":{"operationId":"get_organization","summary":"Get one DAO by Tally slug or id: name, chains, token and governor ids, proposal, delegate and holder counts. Use for \"Ho","description":"Get one DAO by Tally slug or id: name, chains, token and governor ids, proposal, delegate and holder counts. Use for \"How many proposals and delegates does the Uniswap DAO have on Tally\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"slug":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Organization slug as in tally.xyz/gov/<slug>, for example 'uniswap'.","title":"Slug"},"id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Organization id (alternative to slug).","title":"Id"}},"title":"get_organizationArguments","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_governors":{"post":{"operationId":"list_governors","summary":"List the governor contracts of an organization with kind, quorum, proposal statistics and voting parameters. Use for \"Wh","description":"List the governor contracts of an organization with kind, quorum, proposal statistics and voting parameters. Use for \"Which governor contracts does organization 2206072050315953936 use on Tally\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Tally organization id (a number given as a string, see list_organizations).","maxLength":40,"title":"Organization Id","type":"string"},"include_inactive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include governors that are no longer active.","title":"Include Inactive"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 20; 20 is the API's hard limit).","title":"Limit"},"after_cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the lastCursor value from the previous answer's pageInfo.","title":"After Cursor"}},"required":["organization_id"],"title":"list_governorsArguments","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_governor":{"post":{"operationId":"get_governor","summary":"Get one governor contract by its CAIP-10 id or Tally slug: quorum, voting parameters, proposal statistics, token and org","description":"Get one governor contract by its CAIP-10 id or Tally slug: quorum, voting parameters, proposal statistics, token and organization. Use for \"What are the voting period and quorum of the Uniswap governor on Tally\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Governor id in CAIP-10 form (alternative to slug).","title":"Id"},"slug":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Governor slug as in tally.xyz/gov/<slug>.","title":"Slug"}},"title":"get_governorArguments","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_proposals":{"post":{"operationId":"list_proposals","summary":"List proposals of an organization or governor, newest first, with status, title, voting window, quorum and vote totals p","description":"List proposals of an organization or governor, newest first, with status, title, voting window, quorum and vote totals per choice. Use for \"Which recent proposals were there in organization 2206072050315953936 on Tally\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Tally organization id; give this or governor_id.","title":"Organization Id"},"governor_id":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Governor contract id in CAIP-10 form, for example 'eip155:1:0x408ED6354d4973f66138C91495F2f2FCbd8724C3'.","title":"Governor Id"},"descending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True for newest or largest first (default), false for the reverse.","title":"Descending"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 20; 20 is the API's hard limit).","title":"Limit"},"after_cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the lastCursor value from the previous answer's pageInfo.","title":"After Cursor"}},"title":"list_proposalsArguments","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_proposal":{"post":{"operationId":"get_proposal","summary":"Get one proposal by Tally id: full description, status, voting window, quorum, vote totals per choice, governor and orga","description":"Get one proposal by Tally id: full description, status, voting window, quorum, vote totals per choice, governor and organization. Use for \"What does Tally proposal 2300000000000000001 say and did it pass\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Tally proposal id (a number given as a string).","maxLength":40,"title":"Id","type":"string"}},"required":["id"],"title":"get_proposalArguments","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_delegates":{"post":{"operationId":"list_delegates","summary":"List delegates of an organization or governor by voting power or delegator count, with voting power, delegator count and","description":"List delegates of an organization or governor by voting power or delegator count, with voting power, delegator count and statement summary. Use for \"Who are the top delegates of organization 2206072050315953936 on Tally\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Tally organization id; give this or governor_id.","title":"Organization Id"},"governor_id":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Governor contract id in CAIP-10 form, for example 'eip155:1:0x408ED6354d4973f66138C91495F2f2FCbd8724C3'.","title":"Governor Id"},"sort_by":{"anyOf":[{"enum":["votes","delegators","id","isPrioritized"],"type":"string"},{"type":"null"}],"default":"votes","description":"Order: votes (voting power), delegators, id or isPrioritized.","title":"Sort By"},"descending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True for newest or largest first (default), false for the reverse.","title":"Descending"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 20; 20 is the API's hard limit).","title":"Limit"},"after_cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the lastCursor value from the previous answer's pageInfo.","title":"After Cursor"}},"title":"list_delegatesArguments","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_proposal_votes":{"post":{"operationId":"list_proposal_votes","summary":"List the votes cast on one proposal with voter, voting weight, choice (for, against or abstain), reason and time. Use fo","description":"List the votes cast on one proposal with voter, voting weight, choice (for, against or abstain), reason and time. Use for \"How did people vote on Tally proposal 2300000000000000001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"proposal_id":{"description":"Tally proposal id.","maxLength":40,"title":"Proposal Id","type":"string"},"vote_type":{"anyOf":[{"enum":["for","against","abstain"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this choice: for, against or abstain.","title":"Vote Type"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 20; 20 is the API's hard limit).","title":"Limit"},"after_cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the lastCursor value from the previous answer's pageInfo.","title":"After Cursor"}},"required":["proposal_id"],"title":"list_proposal_votesArguments","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 a governance token by its CAIP-19 id: type, name, symbol, supply, decimals and whether it is still being indexed. Us","description":"Get a governance token by its CAIP-19 id: type, name, symbol, supply, decimals and whether it is still being indexed. Use for \"What is the supply of the Uniswap governance token on Tally\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Token id in CAIP-19 form, for example 'eip155:1/erc20:0x1f9840a85d5af5bf1d1762f925bdaddc4201f984'.","maxLength":160,"title":"Id","type":"string"}},"required":["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}}}}