Zerion subscriptions to transactions API

Operations related to subscriptions to transactions.

Operations 12

GET /v1/tx-subscriptions/ Find subscriptions #
POST /v1/tx-subscriptions/ Create subscription #
GET /v1/tx-subscriptions/{subscription_id} Find subscription by ID #
DELETE /v1/tx-subscriptions/{subscription_id} Delete subscription by ID #
GET /v1/tx-subscriptions/{subscription_id}/wallets Find wallets within subscription #
PATCH /v1/tx-subscriptions/{subscription_id}/wallets Patch wallets within subscription #
PUT /v1/tx-subscriptions/{subscription_id}/wallets Replace wallets within subscription #
GET /v1/tx-subscriptions/{subscription_id}/wallets/count Count wallets within subscription #
PATCH /v1/tx-subscriptions/{subscription_id}/callback_url Update callback URL within subscription #
PATCH /v1/tx-subscriptions/{subscription_id}/enable Enable a specific subscription #
PATCH /v1/tx-subscriptions/{subscription_id}/disable Disable a specific subscription #
PATCH /v1/tx-subscriptions/{subscription_id}/chain_ids Update chain IDs within subscription #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zerion-subscriptions-to-transactions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zerion-subscriptions-to-transactions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: REST chains subscriptions to transactions API
  description: REST-like API provides access to rich Zerion ecosystem.
  contact:
    name: Zerion API
    url: https://developers.zerion.io/
    email: api@zerion.io
servers:
- description: Production API
  url: https://api.zerion.io
security:
- APIKeyBasicAuth: []
tags:
- name: subscriptions to transactions
  description: Operations related to subscriptions to transactions.
paths:
  /v1/tx-subscriptions/:
    get:
      operationId: findWalletTransactionsSubscription
      summary: Find subscriptions
      description: 'This endpoint finds subscriptions to new transactions associated with the wallets and chains. Currently response is limited to 1000 subscriptions in the response.


        > NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. There is a non-zero probability that IDs may change in the future, and this should not result in any breaking changes.

        '
      tags:
      - subscriptions to transactions
      parameters:
      - name: filter[chain_ids]
        in: query
        required: false
        description: Comma-separated chain ids. Finds subscriptions on the specified chains. Searches over all chains if omitted.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
            example: polygon
      responses:
        '200':
          $ref: '#/components/responses/SubscriptionsResponse'
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      operationId: createSubscriptionWalletTransactions
      summary: Create subscription
      description: "This endpoint subscribes to new transactions associated with the wallets.\n\n> NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. There is a non-zero probability that IDs may change in the future, and this should not result in any breaking changes.\n\n### Use Case\nThe main use case for the webhooks system is to send notifications, similar to push notifications in the Zerion App.\n\n### Setup Callback URL\nIf you want to use this endpoint to test how it works, you might use your dev key to start. It has limits: one subscription & maximum 5 wallets per subscription.\nYou may use callback URL from webhook.site to start from. If want use your custom - contact us at api@zerion.io, and we will whitelist your URL.\n\nIf you want to use this endpoint in your production environment, you should contact us and provide the following details:\n- Your email associated with the API key\n- The URL that you prefer using as the callback (or host).\n\nAfter we've whitelisted your callback URL (or host), you may start using this endpoint.\n\n### Note\n- **Subscription Validity**: Every subscription is valid for unlimited amount of time for production key, and one week for `dev` keys.\n- **Transaction Prices**: Prices are not attached to webhook notifications and will always be `null`. Prices are added to transactions in the backend after some time. To get prices, query the transactions endpoint by hash.\n- **Delivery Guarantees**: Webhook delivery is not guaranteed. If delivery fails three times, no further attempts will be made.\n- **Order of Dispatch**: The order of webhook dispatch is not guaranteed and may not correspond to the order of transactions occurring on the blockchain.\n\n### Callback Format and Signature Verification\nApproved clients will receive notifications via POST requests to their provided URL. These notifications will include a signed notification object in the body (specified below in the `Callback` section) and a signature in the headers.\n\nClients should verify the signature provided in the headers of the webhook request to ensure the authenticity of the data. The following headers will be included:\n- `X-Signature`: The signature of the request.\n- `X-Timestamp`: The timestamp of the request.\n- `X-Certificate-URL`: The URL to download the public certificate used to verify the signature.\n\n**To verify the signature:**\n1. Concatenate the `X-Timestamp` header value, the request body, and a newline character: `$timestamp + \"\\n\" + $request.body + \"\\n\"`\n2. Use the public certificate downloaded from the `X-Certificate-URL` header to verify the signature in the `X-Signature` header.\n\nExample code in go for message verification:\n\n```go\npackage signature\n\nimport (\n  \"crypto\"\n  \"crypto/rsa\"\n  \"crypto/sha256\"\n  \"crypto/x509\"\n  \"encoding/base64\"\n  \"encoding/pem\"\n  \"errors\"\n  \"github.com/stretchr/testify/assert\"\n  \"testing\"\n)\n\n// FetchCertificate fetches the certificate from the given URL\nfunc FetchCertificate() (*x509.Certificate, error) {\n  certBytes := certificate()\n  block, _ := pem.Decode(certBytes)\n  if block == nil || block.Type != \"CERTIFICATE\" {\n    return nil, errors.New(\"failed to decode PEM block containing the certificate\")\n  }\n\n  return x509.ParseCertificate(block.Bytes)\n}\n\nfunc certificate() []byte {\n  return []byte(`-----BEGIN CERTIFICATE-----\nMIIDMTCCAhmgAwIBAgIUDd3dFMswamyJ5A1bqF0nzS8v2wgwDQYJKoZIhvcNAQEL\nBQAwQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC1plcmlvbiBJbmMuMRwwGgYJKoZI\nhvcNAQkBFg1hcGlAemVyaW9uLmlvMB4XDTI0MDYyNzE1MzUzM1oXDTI1MDYyNzE1\nMzUzM1owQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC1plcmlvbiBJbmMuMRwwGgYJ\nKoZIhvcNAQkBFg1hcGlAemVyaW9uLmlvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\nMIIBCgKCAQEAwcPVCPLDhS9dLA8s5J6GJ3t0+jWuUCFwI+q6c03xZnhCaz45FepN\nMTiApbvPw1Zm8F8JQB4BRp/F5anokNcDSl/qmNtj3M/z/FrsVvGnSH2FOkZu9TLU\nLTW5i8Q0LAYrpgiBHrTa2qrRXd2DiMrEs3QZVoylFYc9QIGet3SULPrlSsYEKxfB\niBZDoFw619NnV6/kBO8FS34Lc+WH5SNNHNnItRrxMv4DMAFyFajSn1IwV6LSWSNK\naPJHCzP/Omu95550HQKcXaJYNE/d99NrcLaFI2fCuEVd00nApFo5knKs0FiXpGca\nl3cLOQG5SCOzUOjQb6X5CynEV+0QiyYxDwIDAQABoyEwHzAdBgNVHQ4EFgQUVL4m\nu0PcI4nJGUS8syLi5DNL44YwDQYJKoZIhvcNAQELBQADggEBAKaA1oqW0D6KxvIp\nIZxWf02XK/YFYwxKV55Vas0VWlzNemE2IjlIj0tknZt0EiM9um2FC27U9n3u0ApS\nUDrk96dQ+/RY3T3fiuXysa3ZL05OpreRk0aPuFU9rB4iLTgFiv1G/X5XXJ8O7OQb\n48u0vQnYXjT/nt72TMUoakjZ68QsP64FkG8mcK62Tg+FVWB9YWTFc0wOjsOt9RzJ\nmuKCQ7qx7L1GhkxKX4ZhrYItsH1DzXjeP5aniZgLBSPbxt01tUrSjOGN5CLOpdG8\niOnAFP+Nz8S0h2C7hppOHgC+uxY285UrzAZQoMbCREMV+0Mq/aqdF1B6qoKGNGqL\nkFbUhvo=\n-----END CERTIFICATE-----\n`)\n}\n\nfunc VerifySignature(cert *x509.Certificate, message, signature string) error {\n  pubKey := cert.PublicKey.(*rsa.PublicKey)\n\n  hashed := sha256.Sum256([]byte(message))\n  sigBytes, err := base64.StdEncoding.DecodeString(signature)\n  if err != nil {\n    return err\n  }\n\n  return rsa.VerifyPKCS1v15(pubKey, crypto.SHA256, hashed[:], sigBytes)\n}\n\nfunc TestVerifySignature(t *testing.T) {\n  // Example usage\n  x509Cert, err := FetchCertificate()\n  assert.NoError(t, err)\n\n  xTimestamp := \"2024-07-31T00:17:36Z\"\n  xSignature := \"t65gdR8z3NGh/OQRPzGMFmw36JhDNvOe6LxL6K2hCd3SdYQoTGr76dAy1CpsX2G8XVOIYUIctUQvgICQvtDctVjkRZmXuQDvXHOmiJE0ZknORgjVLFoo5JRYKvwt3EPp6SMN7RtedIX17rH1s2Vp3GRQWSjzN7C/cNgInhCQOP0UDjYlaeNT/yW4B2Qt4uY01yK0YhvQJaFHN+NNr7DZAt4FJuDppItqjaYbHTaFNqLlpI1IX7YvQWVhEYTJY6M4T9IdcGYPJKDljckjvmj9mDHZeh/Y6w8eXjLziMSFvlhJeSn1kBIR3nS7lTcwFNv1CPxD3MM7VB++te3mBbFubg==\"\n  messageBody := `{\"data\":{\"attributes\":{\"timestamp\":\"2024-07-31T00:17:36.661896043Z\"},\"id\":\"15daee90-5028-4b4c-bd49-b4d43fa1a89e\",\"type\":\"callback\"},\"included\":[{\"attributes\":{\"application_metadata\":{\"contract_address\":\"0x8286d601a0ed6cf75e067e0614f73a5b9f024151\",\"method\":{\"id\":\"0x7859bb8d\",\"name\":\"\"}},\"approvals\":[],\"fee\":{\"fungible_info\":{\"flags\":{\"verified\":true},\"icon\":{\"url\":\"https://cdn.zerion.io/eth.png\"},\"implementations\":[{\"address\":\"\",\"chain_id\":\"redstone\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"polygon-zkevm\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"optimism\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"zksync-era\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"mode\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"base\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"ethereum\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"aurora\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"scroll\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"rari\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"astar-zkevm\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"arbitrum\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"zora\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"blast\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"linea\",\"decimals\":18},{\"address\":\"\",\"chain_id\":\"manta-pacific\",\"decimals\":18}],\"name\":\"Ethereum\",\"symbol\":\"ETH\"},\"price\":null,\"quantity\":{\"decimals\":18,\"float\":0.0000016785001958,\"int\":\"1678500195825\",\"numeric\":\"0.000001678500195825\"},\"value\":null},\"flags\":{\"is_trash\":false},\"hash\":\"0xbbcfb0ac5e466ded168794a162da334634fee3f95adfdb55392999f91b4c6d41\",\"mined_at\":\"2024-07-31T00:17:35Z\",\"mined_at_block\":7490818,\"nonce\":250,\"operation_type\":\"execute\",\"sent_from\":\"0xfc0f1b3fb88c5ab19e77a6f7d4d637272e71e684\",\"sent_to\":\"0x8286d601a0ed6cf75e067e0614f73a5b9f024151\",\"status\":\"confirmed\",\"transfers\":[]},\"id\":\"a65b2541c58a5908a7333480f0ac6792\",\"relationships\":{\"chain\":{\"id\":\"linea\",\"type\":\"chains\"},\"dapp\":{\"id\":\"\",\"type\":\"dapps\"}},\"type\":\"transactions\"}]}`\n\n  message := xTimestamp + \"\\n\" + messageBody + \"\\n\"\n\n  err = VerifySignature(x509Cert, message, xSignature)\n  assert.NoError(t, err)\n}\n```\n"
      tags:
      - subscriptions to transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - callback_url
              - addresses
              properties:
                callback_url:
                  type: string
                  description: 'Callback URL where updates will be delivered to

                    '
                  example: https://webhook.site/fcd606d2-f5bd-4832-9874-ff07c980b5a3
                addresses:
                  type: array
                  description: 'Addresses of the wallets to create subscription for. Maximum 100 addresses per subscription.

                    Note: Free tier accounts are limited to 5 addresses per subscription.

                    '
                  items:
                    type: string
                    description: Address of the wallet.
                    example: '0x42b9df65b219b3dd36ff330a4dd8f327a6ada990'
                chain_ids:
                  type: array
                  description: 'Subscribe for transactions from specified chains. Leave empty to subscribe for all supported chains.

                    You can find available chain ids in chain endpoints.

                    '
                  items:
                    type: string
                    example: polygon
      responses:
        '201':
          $ref: '#/components/responses/SubscriptionResponse'
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      callbacks:
        TransactionCallback:
          <your webhook URL>:
            post:
              summary: Notification
              requestBody:
                $ref: '#/components/requestBodies/NotificationResponse'
              responses:
                '200':
                  description: Successful callback processing
                '400':
                  description: Invalid request
                '500':
                  description: Server error
  /v1/tx-subscriptions/{subscription_id}:
    get:
      operationId: GetWalletTransactionsSubscription
      summary: Find subscription by ID
      description: 'This endpoint by ID returns subscription to new transactions associated with the wallets and chains.


        > NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. There is a non-zero probability that IDs may change in the future, and this should not result in any breaking changes.

        '
      tags:
      - subscriptions to transactions
      parameters:
      - name: subscription_id
        in: path
        required: true
        description: ID of the subscription
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/SubscriptionResponse'
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    delete:
      operationId: DeleteWalletTransactionsSubscription
      summary: Delete subscription by ID
      description: 'This endpoint deletes existing subscription


        > NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. There is a non-zero probability that IDs may change in the future, and this should not result in any breaking changes.

        '
      tags:
      - subscriptions to transactions
      parameters:
      - name: subscription_id
        in: path
        required: true
        description: ID of the subscription
        schema:
          type: string
      responses:
        '204':
          description: Successful subscription deletion with no content
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/tx-subscriptions/{subscription_id}/wallets:
    get:
      operationId: GetSubscribedWalletsInSubscription
      summary: Find wallets within subscription
      description: 'This endpoint by subscription ID returns wallets within specific subscription.


        > NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. There is a non-zero probability that IDs may change in the future, and this should not result in any breaking changes.

        '
      tags:
      - subscriptions to transactions
      parameters:
      - $ref: '#/components/parameters/SubscriptionWalletsPage'
      - name: subscription_id
        in: path
        required: true
        description: ID of the subscription
        schema:
          type: string
          example: 77e77447-1586-40e8-a75b-467ef939a0b1
      responses:
        '200':
          $ref: '#/components/responses/SubscriptionWalletsResponse'
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    patch:
      operationId: PatchSubscribedWalletsInSubscription
      summary: Patch wallets within subscription
      description: 'This endpoint works by subscription ID. It patches wallets list within specific subscription.


        > NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. There is a non-zero probability that IDs may change in the future, and this should not result in any breaking changes.

        '
      tags:
      - subscriptions to transactions
      parameters:
      - name: subscription_id
        in: path
        required: true
        description: ID of the subscription
        schema:
          type: string
          example: 77e77447-1586-40e8-a75b-467ef939a0b1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                add:
                  type: array
                  maxItems: 100
                  description: 'Addresses of the wallets to add to subscription. Maximum 100 addresses per request.

                    '
                  items:
                    type: string
                    description: Address of the wallet.
                    example: '0x42b9df65b219b3dd36ff330a4dd8f327a6ada990'
                remove:
                  type: array
                  maxItems: 100
                  description: 'Addresses of the wallets to remove from subscription. Maximum 100 addresses per request.

                    '
                  items:
                    type: string
                    description: Address of the wallet.
                    example: '0x42b9df65b219b3dd36ff330a4dd8f327a6ada990'
      responses:
        '200':
          description: Successful callback processing
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    put:
      operationId: ReplaceSubscribedWalletsInSubscription
      summary: Replace wallets within subscription
      description: 'This endpoint works by subscription ID. It replaces wallets list within specific subscription.


        > NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. There is a non-zero probability that IDs may change in the future, and this should not result in any breaking changes.

        '
      tags:
      - subscriptions to transactions
      parameters:
      - name: subscription_id
        in: path
        required: true
        description: ID of the subscription
        schema:
          type: string
          example: 77e77447-1586-40e8-a75b-467ef939a0b1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                wallets:
                  type: array
                  description: 'Addresses of the wallets to replace current list with

                    '
                  items:
                    type: string
                    description: Address of the wallet.
                    example: '0x42b9df65b219b3dd36ff330a4dd8f327a6ada990'
      responses:
        '200':
          description: Successful callback processing
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/tx-subscriptions/{subscription_id}/wallets/count:
    get:
      operationId: GetSubscribedWalletsCountInSubscription
      summary: Count wallets within subscription
      description: 'This endpoint returns the count of wallets within a specific subscription by subscription ID.


        > NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. There is a non-zero probability that IDs may change in the future, and this should not result in any breaking changes.

        '
      tags:
      - subscriptions to transactions
      parameters:
      - name: subscription_id
        in: path
        required: true
        description: ID of the subscription
        schema:
          type: string
          example: 77e77447-1586-40e8-a75b-467ef939a0b1
      responses:
        '200':
          $ref: '#/components/responses/SubscriptionWalletsCountResponse'
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/tx-subscriptions/{subscription_id}/callback_url:
    patch:
      operationId: UpdateCallbackUrlInSubscription
      summary: Update callback URL within subscription
      description: 'This endpoint updates the callback URL for a specific subscription.


        > NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. There is a non-zero probability that IDs may change in the future, and this should not result in any breaking changes.

        '
      tags:
      - subscriptions to transactions
      parameters:
      - name: subscription_id
        in: path
        required: true
        description: ID of the subscription
        schema:
          type: string
          example: 77e77447-1586-40e8-a75b-467ef939a0b1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                callback_url:
                  type: string
                  description: 'The new callback URL to be used for the subscription.

                    '
                  example: https://webhook.site/new-callback-url
      responses:
        '200':
          description: Successfully updated callback URL
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/tx-subscriptions/{subscription_id}/enable:
    patch:
      operationId: EnableSubscription
      summary: Enable a specific subscription
      description: 'This endpoint sets the status of a specific subscription to "enabled".


        > NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. This ensures flexibility and future-proofing against ID format changes.

        '
      tags:
      - subscriptions to transactions
      parameters:
      - name: subscription_id
        in: path
        required: true
        description: ID of the subscription
        schema:
          type: string
          example: 77e77447-1586-40e8-a75b-467ef939a0b1
      responses:
        '204':
          description: Successfully updated subscription status to enabled
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/tx-subscriptions/{subscription_id}/disable:
    patch:
      operationId: DisableSubscription
      summary: Disable a specific subscription
      description: 'This endpoint sets the status of a specific subscription to "disabled".


        > NOTE: Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions. This ensures flexibility and future-proofing against ID format changes.

        '
      tags:
      - subscriptions to transactions
      parameters:
      - name: subscription_id
        in: path
        required: true
        description: ID of the subscription
        schema:
          type: string
          example: 77e77447-1586-40e8-a75b-467ef939a0b1
      responses:
        '204':
          description: Successfully updated subscription status to disabled
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/tx-subscriptions/{subscription_id}/chain_ids:
    patch:
      operationId: UpdateChainIdsInSubscription
      summary: Update chain IDs within subscription
      description: 'This endpoint updates the list of chain IDs associated with a specific subscription.


        > NOTE:

        > - Consider all IDs as abstract strings, without making any assumptions about their format or relying on such assumptions.

        > - The chain IDs provided will replace the existing chain IDs associated with the subscription.

        '
      tags:
      - subscriptions to transactions
      parameters:
      - name: subscription_id
        in: path
        required: true
        description: ID of the subscription
        schema:
          type: string
          example: 77e77447-1586-40e8-a75b-467ef939a0b1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                chain_ids:
                  type: array
                  description: 'The list of new chain IDs to replace the current associated chain IDs in the subscription.

                    '
                  items:
                    type: string
                    description: A chain ID.
                    example: ethereum
      responses:
        '200':
          description: Successfully updated chain IDs
        '400':
          $ref: '#/components/responses/MalformedParameters'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    Attributes-5:
      type: object
      required:
      - operation_type
      - hash
      - mined_at_block
      - mined_at
      - sent_from
      - sent_to
      - status
      - nonce
      - fee
      - transfers
      - approvals
      properties:
        address:
          type: string
          description: Wallet address for which this transaction is being retrieved.
          example: '0x42b9df65b219b3dd36ff330a4dd8f327a6ada990'
        operation_type:
          $ref: '#/components/schemas/Type'
        hash:
          type: string
          description: Hash of the transaction.
          example: '0x109d8622084d562263230ba5de412b5cd7c372019131e2c9d0a8aa4925eb6034'
        mined_at_block:
          type: integer
          format: int32
          description: Number of a block where the transaction was mined.
          example: 15345739
        mined_at:
          type: string
          description: Timestamp string in ISO 8601 format when the transaction was mined.
          example: '2022-08-15T11:26:31+00:00'
        sent_from:
          type: string
          description: Address of a sender of the transaction. It could be a smart contract address too.
          example: '0x42b9df65b219b3dd36ff330a4dd8f327a6ada990'
        sent_to:
          type: string
          description: Address of a recipient of the transaction. It could a be smart contract address too.
          example: '0x794a61358d6845594f94dc1db02a252b5b4814ad'
        status:
          type: string
          description: Status of the transaction.
          example: confirmed
          enum:
          - confirmed
          - failed
          - pending
        nonce:
          type: integer
          format: int32
          description: Nonce of the transaction.
          example: 3757
        fee:
          $ref: '#/components/schemas/Fee'
        refund:
          $ref: '#/components/schemas/Refund'
        transfers:
          type: array
          description: List of transfers. An empty list is returned if the transaction does not have any transfers.
          items:
            $ref: '#/components/schemas/Transfer'
        approvals:
          type: array
          description: List of approvals. An empty list is returned if the transaction does not have any approvals.
          items:
            $ref: '#/components/schemas/Approval'
        collection_approvals:
          type: array
          description: List of collection approvals. An empty list is returned if the transaction does not have any collection approvals.
          items:
            $ref: '#/components/schemas/CollectionApproval'
        delegations:
          type: array
          description: List of delegations.
          items:
            $ref: '#/components/schemas/Delegation'
        application_metadata:
          $ref: '#/components/schemas/DAppInfo-2'
        flags:
          $ref: '#/components/schemas/Flags-4'
        acts:
          type: array
          description: List of acts happened in the transaction for the wallet. Each transfer and approval belongs to one of the acts.
          items:
            $ref: '#/components/schemas/Act'
        paymaster:
          type: string
          description: Address of a transaction fee payer.
          example: '0x794a61358d6845594f94dc1db02a252b5b4814ad'
    ExecutionMethod:
      type: object
      properties:
        id:
          type: string
          description: Execution method id. First 4 bytes of keccak256 of method signature in hex format.
          example: '0x095ea7b3'
        name:
          type: string
          description: Human readable name of the method.
          example: Approve
    Relationships-9:
      type: object
      properties:
        chains:
          type: array
          items:
            $ref: '#/components/schemas/Relationship'
    Info:
      type: object
      required:
      - name
      - symbol
      - icon
      - flags
      - implementations
      properties:
        id:
          type: string
          description: Unique identifier of the fungible asset.
          example: 0230395c-2b01-46d8-b2d6-ce8121d51f9e
        name:
          type: string
          description: Displayable name of the fungible fungible.
          example: Bankless BED Index
        symbol:
          type: string
          description: Displayable symbol of the fungible fungible.
          example: BED
        description:
          type:
          - string
          - 'null'
          description: Brief description of the fungible. Currently available at transaction callback notifications only.
          example: The BED index is meant to track crypto’s top 3 investab.
        icon:
          type:
          - object
          - 'null'
          allOf:
          - $ref: '#/components/schemas/Icon'
        flags:
          $ref: '#/components/schemas/Flags'
        implementations:
          type: array
          description: Implementation details of the fungible on various chains.
          items:
            $ref: '#/components/schemas/Implementation'
        market_data:
          type:
          - object
          - 'null'
          allOf:
          - $ref: '#/components/schemas/MarketData'
          description: Market data for the fungible, including price, supply, and market cap information. Currently available at transaction callback notifications only.
    InterfaceEnum:
      type: string
      description: The standard that the NFT contract follows, e.g. ERC-721.
      example: erc1155
      enum:
      - erc721
      - erc1155
    Type:
      type: string
      description: 'Type of the transaction operation. This field indicates the primary action performed in the transaction.


        Possible values and their meanings:


        - `approve` - Grant permission to a smart contract to access and spend tokens on behalf of the wallet

        - `bid` - Place a bid in a prediction market

        - `burn` - Destroy tokens permanently, reducing the total token supply

        - `claim` - Claim earned rewards, airdrops, or vested tokens from a protocol

        - `delegate` - Delegate tokens or voting power to another address

        - `deploy` - Deploy a new smart contract to the blockchain

        - `deposit` - Deposit assets into a protocol (e.g., lending pool, liquidity pool, vault)

        - `execute` - Execute a smart contract function or complex interaction that doesn''t fit other specific types

        - `mint` - Create new tokens, increasing the total token supply

        - `receive` - Receive tokens from another wallet address

        - `revoke` - Revoke previously granted token spending permissions from a smart contract

        - `revoke_delegation` - Revoke a previously delegated token or voting power

        - `send` - Send tokens to another wallet address

        - `trade` - Exchange or swap assets (e.g., on a DEX)

        - `withdraw` - Withdraw assets from a protocol (e.g., from lending pools, liquidity pools, or vaults)

        '
      example: trade
      enum:
      - approve
      - bid
      - burn
      - claim
      - delegate
      - deploy
      - deposit
      - execute
      - mint
      - receive
      - revoke
      - revoke_delegation
      - send
      - trade
      - withdra

# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zerion/refs/heads/main/openapi/zerion-subscriptions-to-transactions-api-openapi.yml