Cardano Cardano » Mempool API

The Cardano » Mempool API from Cardano — 3 operation(s) for cardano » mempool.

OpenAPI Specification

cardano-cardano-mempool-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  version: 0.1.89
  title: Blockfrost.io ~ API Documentation Cardano » Accounts Cardano » Mempool API
  x-logo:
    url: https://staging.blockfrost.io/images/logo.svg
    altText: Blockfrost
  contact:
    name: Blockfrost Team
    url: https://blockfrost.io
    email: contact@blockfrost.io
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  termsOfService: https://blockfrost.io/terms
  description: "Blockfrost is an API as a service that allows users to interact with the Cardano blockchain, Midnight blockchain, and parts of their ecosystems.\n\n## Tokens\n\nAfter signing up on https://blockfrost.io, a `project_id` token is automatically generated for each project.\nHTTP header of your request MUST include this `project_id` in order to authenticate against Blockfrost servers.\n\n## Available networks\n\nAt the moment, you can use the following networks. Please, note that each network has its own `project_id`.\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n          <b>Network</b>\n      </td>\n      <td>\n          <b>Endpoint</b>\n      </td>\n    </tr>\n    <tr>\n        <td>Cardano mainnet</td>\n        <td>\n            <code>https://cardano-mainnet.blockfrost.io/api/v0</code>\n        </td>\n    </tr>\n    <tr>\n        <td>Cardano preprod</td>\n        <td>\n            <code>https://cardano-preprod.blockfrost.io/api/v0</code>\n        </td>\n    </tr>\n    <tr>\n        <td>Cardano preview</td>\n        <td>\n            <code>https://cardano-preview.blockfrost.io/api/v0</code>\n        </td>\n    </tr>\n    <tr>\n        <td>Midnight mainnet</td>\n        <td>\n            <code>https://midnight-mainnet.blockfrost.io/api/v0</code>\n        </td>\n    </tr>\n    <tr>\n        <td>InterPlanetary File System</td>\n        <td>\n            <code>https://ipfs.blockfrost.io/api/v0</code>\n        </td>\n    </tr>\n  </tbody>\n</table>\n\n## Concepts\n\n* All endpoints return either a JSON object or an array.\n* Data is returned in *ascending* (oldest first, newest last) order, if not stated otherwise.\n  * You might use the `?order=desc` query parameter to reverse this order.\n* By default, we return 100 results at a time. You have to use `?page=2` to list through the results.\n* All time and timestamp related fields (except `server_time`) are in seconds of UNIX time.\n* All amounts are returned in Lovelaces, where 1 ADA = 1 000 000 Lovelaces.\n* Addresses, accounts and pool IDs are in Bech32 format.\n* All values are case sensitive.\n* All hex encoded values are lower case.\n* Examples are not based on real data. Any resemblance to actual events is purely coincidental.\n* We allow to upload files up to 100MB of size to IPFS. This might increase in the future.\n* Only pinned IPFS files are counted towards the IPFS quota.\n* Non-pinned IPFS files are subject to regular garbage collection and will be removed unless pinned.\n* We allow maximum of 100 queued pins per IPFS user.\n\n## Errors\n\n### HTTP Status codes\n\nThe following are HTTP status code your application might receive when reaching Blockfrost endpoints and\nit should handle all of these cases.\n\n* HTTP `400` return code is used when the request is not valid.\n* HTTP `402` return code is used when the projects exceed their daily request limit.\n* HTTP `403` return code is used when the request is not authenticated.\n* HTTP `404` return code is used when the resource doesn't exist.\n* HTTP `418` return code is used when the user has been auto-banned for flooding too much after previously receiving error code `402` or `429`.\n* HTTP `425` return code is used in Cardano networks, when the user has submitted a transaction when the mempool is already full, not accepting new txs straight away.\n* HTTP `425` return code is used in IPFS network, when the user has submitted a pin when the pin queue is already full, not accepting new pins straight away.\n* HTTP `429` return code is used when the user has sent too many requests in a given amount of time and therefore has been rate-limited.\n* HTTP `500` return code is used when our endpoints are having a problem.\n\n### Error codes\n\nAn internal error code number is used for better indication of the error in question. It is passed using the following payload.\n\n```json\n{\n  \"status_code\": 403,\n  \"error\": \"Forbidden\",\n  \"message\": \"Invalid project token.\"\n}\n```\n## Limits\n\nThere are two types of limits we are enforcing:\n\nThe first depends on your plan and is the number of request we allow per day. We defined the day from midnight to midnight of UTC time.\n\nThe second is rate limiting. We limit an end user, distinguished by IP address, to 10 requests per second. On top of that, we allow\neach user to send burst of 500 requests, which cools off at rate of 10 requests per second. In essence, a user is allowed to make another\nwhole burst after (currently) 500/10 = 50 seconds. E.g. if a user attempts to make a call 3 seconds after whole burst, 30 requests will be processed.\nWe believe this should be sufficient for most of the use cases. If it is not and you have a specific use case, please get in touch with us, and\nwe will make sure to take it into account as much as we can.\n\n## SDKs\n\nWe support a number of SDKs that will help you in developing your application on top of Blockfrost.\n\n<table>\n  <tbody>\n    <tr>\n        <td><b>Programming language</b></td>\n        <td><b>SDK</b></td>\n    </tr>\n    <tr>\n        <td>JavaScript</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-js\">blockfrost-js</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Haskell</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-haskell\">blockfrost-haskell</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Python</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-python\">blockfrost-python</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Rust</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-rust\">blockfrost-rust</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Golang</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-go\">blockfrost-go</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Ruby</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-ruby\">blockfrost-ruby</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Java</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-java\">blockfrost-java</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Scala</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-scala\">blockfrost-scala</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Swift</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-swift\">blockfrost-swift</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Kotlin</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-kotlin\">blockfrost-kotlin</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Elixir</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-elixir\">blockfrost-elixir</a>\n        </td>\n    </tr>\n    <tr>\n        <td>.NET</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-dotnet\">blockfrost-dotnet</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Arduino</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-arduino\">blockfrost-arduino</a>\n        </td>\n    </tr>\n    <tr>\n        <td>PHP</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-php\">blockfrost-php</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Crystal</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-crystal\">blockfrost-crystal</a>\n        </td>\n    </tr>\n  </tbody>\n</table>\n\n\n## Midnight API\n\n\nThe Midnight Indexer API exposes a GraphQL API that enables clients to query and subscribe to blockchain data — blocks, transactions, contracts, and wallet-related events — indexed from the Midnight blockchain.\n\nAvailable networks: `mainnet`, `preprod`, `preview`\n\n| Service | URL | Protocol |\n|---------|-----|----------|\n| **Indexer HTTP API** | `https://midnight-{network}.blockfrost.io/api/v0` | HTTP POST (GraphQL) |\n| **Indexer Subscriptions API** | `wss://midnight-{network}.blockfrost.io/api/v0/ws` | WebSocket |\n| **Node RPC** | `https://rpc.midnight-{network}.blockfrost.io` | JSON-RPC |\n\n\nFor the full documentation — queries, mutations, subscriptions, authentication options, and examples — see the Midnight GraphQL API Reference:\n\n[![Explore the Midnight API →](https://img.shields.io/badge/Explore_the_Midnight_API_→-0033AD?style=for-the-badge)](./midnight/)\n"
servers:
- url: https://cardano-mainnet.blockfrost.io/api/v0
  description: Cardano Mainnet network
- url: https://cardano-preprod.blockfrost.io/api/v0
  description: Cardano Preprod network
- url: https://cardano-preview.blockfrost.io/api/v0
  description: Cardano Preview network
- url: https://localhost:3000
  description: local
security:
- project_id: []
tags:
- name: Cardano » Mempool
paths:
  /mempool:
    get:
      tags:
      - Cardano » Mempool
      summary: Mempool
      description: "Return transactions that are currently stored in Blockfrost mempool,\nwaiting to be included in a newly minted block.\nShows only transactions submitted via Blockfrost.io.\n\n<p>\n  <span class=\"hosted\">Hosted</span> Endpoint only available for hosted variant.\n</p>\n"
      parameters:
      - in: query
        name: count
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        description: The number of results displayed on one page.
      - in: query
        name: page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 21474836
          default: 1
        description: The page number for listing the results.
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: 'Ordered by the time of transaction submission.

          By default, we return oldest first, newest last.

          '
      responses:
        '200':
          description: Return the contents of the mempool
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mempool_content'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /mempool/{hash}:
    get:
      tags:
      - Cardano » Mempool
      summary: Specific transaction in the mempool
      description: "Return content of the requested transaction.\n\n<p>\n  <span class=\"hosted\">Hosted</span> Endpoint only available for hosted variant.\n</p>\n"
      parameters:
      - in: path
        name: hash
        required: true
        schema:
          type: string
          format: 64-character case-sensitive hexadecimal string.
        description: Hash of the requested transaction
        example: 6e5f825c42c1c6d6b77f2a14092f3b78c8f1b66db6f4cf8caec1555b6f967b3b
      responses:
        '200':
          description: Return the contents of the transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mempool_tx_content'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /mempool/addresses/{address}:
    get:
      tags:
      - Cardano » Mempool
      summary: Mempool by address
      description: "List of mempool transactions where at least one of the transaction inputs or outputs belongs to the address.\nShows only transactions submitted via Blockfrost.io.\n\n<p>\n  <span class=\"hosted\">Hosted</span> Endpoint only available for hosted variant.\n</p>\n"
      parameters:
      - in: path
        name: address
        required: true
        schema:
          type: string
          format: 64-character case-sensitive hexadecimal string.
        description: Bech32 address.
        example: addr1qxqs59lphg8g6qndelq8xwqn60ag3aeyfcp33c2kdp46a09re5df3pzwwmyq946axfcejy5n4x0y99wqpgtp2gd0k09qsgy6pz
      - in: query
        name: count
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        description: The number of results displayed on one page.
      - in: query
        name: page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 21474836
          default: 1
        description: The page number for listing the results.
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: 'Ordered by the time of transaction submission.

          By default, we return oldest first, newest last.

          '
      responses:
        '200':
          description: Return the contents of the mempool
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mempool_addresses_content'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
components:
  responses:
    '500':
      description: Internal Server Error
      content:
        application/json:
          schema:
            type: object
            properties:
              status_code:
                type: integer
                example: 500
              error:
                type: string
                example: Internal Server Error
              message:
                type: string
                example: An unexpected response was received from the backend.
            required:
            - error
            - message
            - status_code
    '429':
      description: Usage limit reached
      content:
        application/json:
          schema:
            type: object
            properties:
              status_code:
                type: integer
                example: 429
              error:
                type: string
                example: Project Over Limit
              message:
                type: string
                example: Usage is over limit.
            required:
            - error
            - message
            - status_code
    '403':
      description: Authentication secret is missing or invalid
      content:
        application/json:
          schema:
            type: object
            properties:
              status_code:
                type: integer
                example: 403
              error:
                type: string
                example: Forbidden
              message:
                type: string
                example: Invalid project token.
            required:
            - error
            - message
            - status_code
    '404':
      description: Component not found
      content:
        application/json:
          schema:
            type: object
            properties:
              status_code:
                type: integer
                example: 404
              error:
                type: string
                example: Not Found
              message:
                type: string
                example: The requested component has not been found.
            required:
            - error
            - message
            - status_code
    '400':
      description: Bad request
      content:
        application/json:
          schema:
            type: object
            properties:
              status_code:
                type: integer
                example: 400
              error:
                type: string
                example: Bad Request
              message:
                type: string
                example: Backend did not understand your request.
            required:
            - error
            - message
            - status_code
    '418':
      description: IP has been auto-banned for extensive sending of requests after usage limit has been reached
      content:
        application/json:
          schema:
            type: object
            properties:
              status_code:
                type: integer
                example: 418
              error:
                type: string
                example: Requested Banned
              message:
                type: string
                example: IP has been auto-banned for flooding.
            required:
            - error
            - message
            - status_code
  schemas:
    mempool_addresses_content:
      type: array
      items:
        type: object
        properties:
          tx_hash:
            type: string
            description: Hash of the transaction
        required:
        - tx_hash
      example:
      - tx_hash: 1a0570af966fb355a7160e4f82d5a80b8681b7955f5d44bec0dce628516157f0
    mempool_content:
      type: array
      items:
        type: object
        properties:
          tx_hash:
            type: string
            description: Hash of the transaction
        required:
        - tx_hash
      example:
      - tx_hash: 1a0570af966fb355a7160e4f82d5a80b8681b7955f5d44bec0dce628516157f0
    mempool_tx_content:
      type: object
      properties:
        tx:
          type: object
          properties:
            hash:
              type: string
              example: 1e043f100dce12d107f679685acd2fc0610e10f72a92d412794c9773d11d8477
              description: Transaction hash
            output_amount:
              type: array
              items:
                type: object
                description: The sum of all the UTXO per asset
                properties:
                  unit:
                    type: string
                    format: Lovelace or concatenation of asset policy_id and hex-encoded asset_name
                    description: The unit of the value
                  quantity:
                    type: string
                    description: The quantity of the unit
                required:
                - unit
                - quantity
              example:
              - unit: lovelace
                quantity: '42000000'
              - unit: b0d07d45fe9514f80213f4020e5a61241458be626841cde717cb38a76e7574636f696e
                quantity: '12'
            fees:
              type: string
              example: '182485'
              description: Fees of the transaction in Lovelaces
            deposit:
              type: string
              example: '0'
              description: Deposit within the transaction in Lovelaces
            size:
              type: integer
              example: 433
              description: Size of the transaction in Bytes
            invalid_before:
              type: string
              nullable: true
              example: null
              description: Left (included) endpoint of the timelock validity intervals
            invalid_hereafter:
              type: string
              nullable: true
              example: '13885913'
              description: Right (excluded) endpoint of the timelock validity intervals
            utxo_count:
              type: integer
              example: 4
              description: Count of UTXOs within the transaction
            withdrawal_count:
              type: integer
              example: 0
              description: Count of the withdrawals within the transaction
            mir_cert_count:
              type: integer
              example: 0
              description: Count of the MIR certificates within the transaction
            delegation_count:
              type: integer
              example: 0
              description: Count of the delegations within the transaction
            stake_cert_count:
              type: integer
              example: 0
              description: Count of the stake keys (de)registration within the transaction
            pool_update_count:
              type: integer
              example: 0
              description: Count of the stake pool registration and update certificates within the transaction
            pool_retire_count:
              type: integer
              example: 0
              description: Count of the stake pool retirement certificates within the transaction
            asset_mint_or_burn_count:
              type: integer
              example: 0
              description: Count of asset mints and burns within the transaction
            redeemer_count:
              type: integer
              example: 0
              description: Count of redeemers within the transaction
            valid_contract:
              type: boolean
              example: true
              description: True if contract script passed validation
          required:
          - hash
          - output_amount
          - fees
          - deposit
          - size
          - invalid_before
          - invalid_hereafter
          - utxo_count
          - withdrawal_count
          - mir_cert_count
          - delegation_count
          - stake_cert_count
          - pool_update_count
          - pool_retire_count
          - asset_mint_or_burn_count
          - redeemer_count
          - valid_contract
        inputs:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
                example: addr1q9ld26v2lv8wvrxxmvg90pn8n8n5k6tdst06q2s856rwmvnueldzuuqmnsye359fqrk8hwvenjnqultn7djtrlft7jnq7dy7wv
                description: Input address
              tx_hash:
                type: string
                example: 1a0570af966fb355a7160e4f82d5a80b8681b7955f5d44bec0dce628516157f0
                description: Hash of the UTXO transaction
              output_index:
                type: integer
                example: 0
                description: UTXO index in the transaction
              collateral:
                type: boolean
                example: false
                description: Whether the input is a collateral consumed on script validation failure
              reference:
                type: boolean
                example: false
                description: Whether the input is a reference transaction input
            required:
            - tx_hash
            - output_index
            - collateral
        outputs:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
                example: addr1q9ld26v2lv8wvrxxmvg90pn8n8n5k6tdst06q2s856rwmvnueldzuuqmnsye359fqrk8hwvenjnqultn7djtrlft7jnq7dy7wv
                description: Output address
              amount:
                type: array
                items:
                  type: object
                  description: The sum of all the UTXO per asset
                  properties:
                    unit:
                      type: string
                      format: Lovelace or concatenation of asset policy_id and hex-encoded asset_name
                      description: The unit of the value
                    quantity:
                      type: string
                      description: The quantity of the unit
                  required:
                  - unit
                  - quantity
                example:
                - unit: lovelace
                  quantity: '42000000'
                - unit: b0d07d45fe9514f80213f4020e5a61241458be626841cde717cb38a76e7574636f696e
                  quantity: '12'
              output_index:
                type: integer
                example: 0
                description: UTXO index in the transaction
              data_hash:
                type: string
                nullable: true
                description: The hash of the transaction output datum
                example: 9e478573ab81ea7a8e31891ce0648b81229f408d596a3483e6f4f9b92d3cf710
              inline_datum:
                type: string
                nullable: true
                description: CBOR encoded inline datum
                example: 19a6aa
              collateral:
                type: boolean
                example: false
                description: Whether the output is a collateral output
              reference_script_hash:
                type: string
                nullable: true
                description: The hash of the reference script of the output
                example: 13a3efd825703a352a8f71f4e2758d08c28c564e8dfcce9f77776ad1
            required:
            - address
            - amount
            - output_index
            - data_hash
            - inline_datum
            - collateral
            - reference_script_hash
        redeemers:
          type: array
          items:
            type: object
            properties:
              tx_index:
                type: integer
                example: 0
                description: Index of the redeemer within the transaction
              purpose:
                type: string
                enum:
                - spend
                - mint
                - cert
                - reward
                example: spend
                description: Validation purpose
              unit_mem:
                type: string
                example: '1700'
                description: The budget in Memory to run a script
              unit_steps:
                type: string
                example: '476468'
                description: The budget in CPU steps to run a script
            required:
            - tx_index
            - purpose
            - unit_mem
            - unit_steps
      required:
      - tx
      - inputs
      - outputs
  securitySchemes:
    project_id:
      type: apiKey
      in: header
      name: project_id
      description: 'There are multiple token types available based on network you choose

        when creating a Blockfrost a project, for a list of token types

        see available networks.

        '