openapi: 3.0.0 info: title: TzKT Accounts Protocols API description: "# Introduction\r\n\r\nTzKT is the most widely used tool in Tezos that provides you with convenient and flexible access to the Tezos blockchain data, processed and indexed by its own indexer. \r\nYou can fetch all historical data via REST API, or subscribe for real-time data via WebSocket API. TzKT was built by the joint efforts of the entire Tezos community \r\nto help developers build more services and dapps on top of Tezos.\r\n\r\nTzKT Indexer and API are [open-source](https://github.com/baking-bad/tzkt), so don't be afraid to depend on the third-party service,\r\nbecause you can always clone, build and run it yourself to have full control over all the components.\r\n\r\nFeel free to contact us if you have any questions or feature requests.\r\nYour feedback is much appreciated!\r\n\r\n- Discord: https://discord.gg/aG8XKuwsQd\r\n- Telegram: https://t.me/baking_bad_chat\r\n- X: https://x.com/TezosBakingBad\r\n- Email: hello@bakingbad.dev\r\n\r\nAnd don't forget to star TzKT [on GitHub](https://github.com/baking-bad/tzkt) if you like it \U0001F60A\r\n\r\n# Get Started\r\n\r\nThere are two API services provided for public use:\r\n- **Free TzKT API** with free anonymous access;\r\n- **TzKT Pro** with paid subscriptions with increased rate limits, off-chain data, extended support and business-level SLA.\r\n\r\nYou can find more details about differences between available tiers [here](https://tzkt.io/api).\r\n\r\n## Free TzKT API\r\n\r\nFree-tier TzKT API is the best way to get started and explore available Tezos data and API functionality.\r\nIt doesn't require authorization and is free for everyone and for both commercial and non-commercial use.\r\n\r\n> #### Note: attribution required\r\nIf you use free-tier TzKT API, you **must** mention it on your website or application by placing the label\r\n\"Powered by TzKT API\", or \"Built with TzKT API\", or \"Data provided by TzKT API\" with a direct link to [tzkt.io](https://tzkt.io).\r\n\r\nIt's available for the following Tezos networks with the following base URLs:\r\n\r\n- Mainnet: `https://api.tzkt.io/` or `https://api.mainnet.tzkt.io/` ([view docs](https://api.tzkt.io))\r\n- Ghostnet: `https://api.ghostnet.tzkt.io/` ([view docs](https://api.ghostnet.tzkt.io))\r\n- Shadownet: `https://api.shadownet.tzkt.io/` ([view docs](https://api.shadownet.tzkt.io))\r\n- Seoulnet: `https://api.seoulnet.tzkt.io/` ([view docs](https://api.seoulnet.tzkt.io))\r\n- Tallinnnet: `https://api.tallinnnet.tzkt.io/` ([view docs](https://api.tallinnnet.tzkt.io))\r\n\r\n### Sending Requests\r\n\r\nTo send a request to Free TzKT API you need literally nothing. Just take the base URL of the particular network\r\n(for example, Tezos mainnet: `https://api.tzkt.io`) and append the path of the particular endpoint\r\n(for example, chain's head: `/v1/head`), that's pretty much it: \r\n\r\n```bash\r\ncurl https://api.tzkt.io/v1/head\r\n```\r\n\r\nRead through this documentation to explore available endpoints, query parameters\r\n(note, if you click on a query parameter, you will see available modes, such as `.eq`, `.in`, etc.)\r\nand response models. If you have any questions, do not hesitate to ask for support, Tezos community has always been very friendly! \U0001F609\r\n\r\n### Rate Limits\r\n\r\nPlease, refer to https://tzkt.io/api to check relevant rate limits.\r\n\r\nIf you exceed the limit, the API will respond with `HTTP 429` status code.\r\n\r\n## TzKT Pro\r\n\r\nTzKT Pro is intended for professional use, for those who seek for extended capabilities, performance, reliability and business-level SLA.\r\nTzKT Pro service is provided via paid subscriptions. Please, refer to [Pricing Plans](https://tzkt.io/api) to check available tiers.\r\n\r\nIt's available for the following Tezos networks with the following base URLs:\r\n\r\n- Mainnet: `https://pro.tzkt.io/` ([view docs](https://api.tzkt.io))\r\n- Testnets: *let us know if you need TzKT Pro for testnets*\r\n\r\n### Authorization\r\n\r\nTo access TzKT Pro you will need to authorize requests with your personal API key, that you will receive on your email after purchasing a subscription.\r\nThis can be done by adding the query string parameter `?apikey={your_key}` or by adding the HTTP header `apikey: {your_key}`.\r\n\r\nNote that you can have multiple API keys within a single subscription.\r\n\r\nKeep your API keys private, do not publish it anywhere and do not hardcode it, especially in public repositories.\r\nIf your key was compromised, just let us know and we will issue a new one.\r\n\r\nAlso note that passing the API key via HTTP headers is more secure, because in HTTPS headers are encrypted,\r\nbut query string is not, so the key can be unintentionally exposed to third parties.\r\n\r\n### Sending Requests\r\n\r\nSending a request with the API key passed as a query string parameter:\r\n\r\n```bash\r\ncurl https://pro.tzkt.io/v1/head?apikey={your_key}\r\n```\r\n\r\nSending a request with the API key passed via an HTTP header:\r\n\r\n```bash\r\ncurl https://pro.tzkt.io/v1/head \\\r\n -H 'apikey: {your_key}'\r\n```\r\n\r\n### Rate Limits\r\n\r\nPlease, refer to https://tzkt.io/api to check relevant rate limits for different pricing plans.\r\n\r\nAlso, TzKT Pro provides you with the additional HTTP headers to show the allowed limits, number of available requests\r\nand the time remaining (in seconds) until the quota is reset. Here's an example:\r\n\r\n```\r\nRateLimit-Limit: 50\r\nRateLimit-Remaining: 49\r\nRateLimit-Reset: 1\r\n```\r\n\r\nIt also sends general information about your rate limits per second and per day:\r\n\r\n```\r\nX-RateLimit-Limit-Second: 50\r\nX-RateLimit-Remaining-Second: 49\r\nX-RateLimit-Limit-Day: 3000000\r\nX-RateLimit-Remaining-Day: 2994953\r\n```\r\n\r\nIf you exceed the limit, the API will respond with `HTTP 429` status code.\r\n" contact: name: Baking Bad Team url: https://bakingbad.dev email: hello@bakingbad.dev version: 1.17.1 x-logo: url: https://tzkt.io/logo.png href: https://tzkt.io/ servers: - url: https://api.tzkt.io tags: - name: Protocols paths: /v1/protocols/count: get: tags: - Protocols summary: Get protocols count description: Returns the total number of protocols. operationId: Protocols_GetCount responses: '200': description: '' content: application/json: schema: type: integer format: int32 /v1/protocols: get: tags: - Protocols summary: Get protocols description: Returns a list of protocols. operationId: Protocols_Get parameters: - name: sort in: query description: 'Sorts protocols by specified field. Supported fields: `code` (default), `firstLevel`, `lastLevel`.' schema: nullable: true oneOf: - $ref: '#/components/schemas/SortParameter' x-position: 1 x-tzkt-extension: query-parameter - name: offset in: query description: Specifies which or how many items should be skipped schema: nullable: true oneOf: - $ref: '#/components/schemas/OffsetParameter' x-position: 2 x-tzkt-extension: query-parameter - name: limit in: query description: Maximum number of items to return schema: type: integer format: int32 default: 100 maximum: 10000.0 minimum: 0.0 x-position: 3 responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/Protocol' /v1/protocols/current: get: tags: - Protocols summary: Get current protocol description: Returns current protocol. operationId: Protocols_GetCurrent responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Protocol' /v1/protocols/{code}: get: tags: - Protocols summary: Get protocol by code description: Returns a protocol with the specified proto code. operationId: Protocols_GetByCode parameters: - name: code in: path required: true description: Protocol code (e.g. 4 for Athens, 5 for Babylon, etc) schema: type: integer format: int32 x-position: 1 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Protocol' /v1/protocols/{hash}: get: tags: - Protocols summary: Get protocol by hash description: Returns a protocol with the specified hash. operationId: Protocols_GetByHash parameters: - name: hash in: path required: true description: Protocol hash schema: type: string x-position: 1 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Protocol' /v1/protocols/cycles/{cycle}: get: tags: - Protocols summary: Get protocol by cycle description: Returns a protocol at the specified cycle. operationId: Protocols_GetByCycle parameters: - name: cycle in: path required: true description: Cycle index schema: type: integer format: int32 x-position: 1 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Protocol' components: schemas: SortParameter: type: object additionalProperties: false properties: asc: type: string description: '**Ascending** sort mode (optional, i.e. `sort.asc=id` is the same as `sort=id`). \ Specify a field name to sort by. Example: `?sort=balance`.' nullable: true desc: type: string description: '**Descending** sort mode. \ Specify a field name to sort by descending. Example: `?sort.desc=id`.' nullable: true x-tzkt-extension: query-parameter ProtocolConstants: type: object additionalProperties: false properties: rampUpCycles: type: integer description: The number of cycles where security deposit is ramping up format: int32 noRewardCycles: type: integer description: The number of cycles with no baking rewards format: int32 consensusRightsDelay: type: integer description: Delay in cycles after which baking rights are assigned format: int32 delegateParametersActivationDelay: type: integer description: Delay in cycles after which the parameters from `set_delegate_parameters` operations take effect format: int32 blocksPerCycle: type: integer description: A number of blocks the cycle contains format: int32 blocksPerCommitment: type: integer description: A number of blocks that indicates how often seed nonce hash is included in a block. Seed nonce hash presents in only one out of `blocksPerCommitment` format: int32 blocksPerSnapshot: type: integer description: A number of blocks that indicates how often a snapshot (snapshots are records of the state of stake distributions) is taken format: int32 blocksPerVoting: type: integer description: A number of block that indicates how long a voting period takes format: int32 timeBetweenBlocks: type: integer description: Minimum amount of seconds between blocks format: int32 attestersPerBlock: type: integer description: Number of bakers that assigned to attest a block format: int32 hardOperationGasLimit: type: integer description: Maximum amount of gas that one operation can consume format: int32 hardOperationStorageLimit: type: integer description: Maximum amount of storage that one operation can consume format: int32 hardBlockGasLimit: type: integer description: Maximum amount of total gas usage of a single block format: int32 minimalStake: type: integer description: Required number of tokens to get 1 roll (micro tez) format: int64 minimalFrozenStake: type: integer description: Required number of tokens to be frozen by bakers (micro tez) format: int64 blockDeposit: type: integer description: Security deposit for baking (producing) a block (micro tez) format: int64 blockReward: type: array description: Reward for baking (producing) a block (micro tez) items: type: integer format: int64 attestationDeposit: type: integer description: Security deposit for sending an attestation operation (micro tez) format: int64 attestationReward: type: array description: Reward for sending an attestation operation (micro tez) items: type: integer format: int64 originationSize: type: integer description: Initial storage size of an originated (created) account (bytes) format: int32 byteCost: type: integer description: Cost of one storage byte in the blockchain (micro tez) format: int32 proposalQuorum: type: number description: Percentage of the total number of voting power required to select a proposal on the proposal period format: double ballotQuorumMin: type: number description: The minimum value of quorum percentage on the exploration and promotion periods format: double ballotQuorumMax: type: number description: The maximum value of quorum percentage on the exploration and promotion periods format: double lbToggleThreshold: type: integer description: 1/2 window size of 2000 blocks with precision of 1000000 for integer computation format: int32 consensusThreshold: type: integer description: Attestation quorum format: int32 minParticipationNumerator: type: integer description: Number of attested slots needed to receive attestation rewards format: int32 minParticipationDenominator: type: integer description: Number of attested slots needed to receive attestation rewards format: int32 denunciationPeriod: type: integer description: Number of cycles after double baking/(pre)attestation where an accusation operation can be injected format: int32 slashingDelay: type: integer description: Number of cycles after double baking/(pre)attestation evidence where slashing happens format: int32 maxDelegatedOverFrozenRatio: type: integer description: The ratio of delegated tez over the baker’s frozen stake format: int32 maxExternalOverOwnStakeRatio: type: integer description: The ratio of external staked balance over the baker’s own staked balance format: int32 delegationPowerDivider: type: integer description: The divider by which delegation power is divided format: int32 smartRollupOriginationSize: type: integer description: Initial storage size of an originated (created) smart rollup (bytes) format: int32 smartRollupStakeAmount: type: integer description: Smart rollup commitment bond (mutez) format: int64 smartRollupChallengeWindow: type: integer description: Window (in blocks) when it's possible to refute pending commitment format: int32 smartRollupCommitmentPeriod: type: integer description: Period (in blocks) for publishing commitments format: int32 smartRollupTimeoutPeriod: type: integer description: Period (in blocks) when a refutation game player must make a turn format: int32 dalNumberOfShards: type: integer description: Number of DAL Shards format: int32 dictator: type: string description: Governance dictator nullable: true endorsersPerBlock: type: integer description: '**DEPRECATED**' format: int32 endorsementDeposit: type: integer description: '**DEPRECATED**' format: int64 endorsementReward: type: array description: '**DEPRECATED**' items: type: integer format: int64 Protocol: type: object additionalProperties: false properties: code: type: integer description: Protocol code, representing a number of protocol changes since genesis (mod 256, but `-1` for the genesis block) format: int32 hash: type: string description: Hash of the protocol version: type: integer description: Global version number format: int32 firstLevel: type: integer description: Block height where the protocol was applied format: int32 firstCycle: type: integer description: Index of the first cycle started with the protocol format: int32 firstCycleLevel: type: integer description: Level of the first block of the first cycle started with the protocol format: int32 lastLevel: type: integer description: Block height where the protocol ends. `null` if the protocol is active format: int32 nullable: true constants: description: Information about the protocol constants oneOf: - $ref: '#/components/schemas/ProtocolConstants' extras: description: Off-chain extras nullable: true OffsetParameter: type: object additionalProperties: false properties: el: type: integer description: '**Elements** offset mode (optional, i.e. `offset.el=123` is the same as `offset=123`). \ Skips specified number of elements. Example: `?offset=100`.' format: int32 nullable: true pg: type: integer description: '**Page** offset mode. \ Skips `page * limit` elements. This is a classic pagination. Example: `?offset.pg=1`.' format: int32 nullable: true cr: type: integer description: '**Cursor** offset mode. \ Skips all elements with the `cursor` before (including) the specified value. Cursor is a field used for sorting, e.g. `id`. Avoid using this offset mode with non-unique or non-sequential cursors such as `amount`, `balance`, etc. Example: `?offset.cr=45837`.' format: int64 nullable: true x-tzkt-extension: query-parameter x-generator: NSwag v14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0)) x-tagGroups: - name: REST API tags: - Accounts - BigMaps - Blocks - Commitments - Constants - Contracts - Cycles - Delegates - Domains - Events - Head - Helpers - Operations - Protocols - Quotes - Rewards - Rights - SmartRollups - Software - Staking - Statistics - Tickets - Tokens - Voting - name: WebSocket API tags: - Get Started - Subscriptions - Examples - name: Libraries tags: - Typescript SDK - Taquito extension