Zerion subscriptions to transactions API
Operations related to subscriptions to transactions.
Operations related to subscriptions to transactions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/zerion-subscriptions-to-transactions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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