Uniblock · Schema

Uniblock Webhook Event

Schema representing webhook event payloads delivered by Uniblock when blockchain events matching configured filters are detected.

BlockchainWeb3

Properties

Name Type Description
metadata object
data object The event-specific data payload. Structure varies by event type.
View JSON Schema on GitHub

JSON Schema

uniblock-webhook-event-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://uniblock.dev/schemas/uniblock/webhook-event.json",
  "title": "Uniblock Webhook Event",
  "description": "Schema representing webhook event payloads delivered by Uniblock when blockchain events matching configured filters are detected.",
  "type": "object",
  "required": ["metadata", "data"],
  "properties": {
    "metadata": {
      "$ref": "#/$defs/WebhookMetadata"
    },
    "data": {
      "type": "object",
      "description": "The event-specific data payload. Structure varies by event type."
    }
  },
  "$defs": {
    "WebhookMetadata": {
      "type": "object",
      "description": "Common metadata included in all webhook event payloads.",
      "required": ["webhookId", "eventType", "chain", "timestamp"],
      "properties": {
        "webhookId": {
          "type": "string",
          "description": "The unique identifier of the webhook subscription that triggered this notification."
        },
        "eventType": {
          "type": "string",
          "description": "The type of blockchain event that triggered the webhook.",
          "enum": [
            "ADDRESS_ACTIVITY",
            "TOKEN_TRANSFER",
            "NFT_TRANSFER",
            "MINED_TRANSACTION"
          ]
        },
        "chain": {
          "type": "string",
          "description": "The blockchain network on which the event occurred."
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "The ISO 8601 timestamp when the event was detected by Uniblock."
        }
      }
    },
    "AddressActivityData": {
      "type": "object",
      "description": "Data payload for address activity events.",
      "required": ["address", "transactionHash"],
      "properties": {
        "address": {
          "type": "string",
          "description": "The monitored address involved in the activity."
        },
        "direction": {
          "type": "string",
          "description": "Whether the address was the sender or receiver.",
          "enum": ["inbound", "outbound"]
        },
        "transactionHash": {
          "type": "string",
          "description": "The hash of the transaction.",
          "pattern": "^0x[a-fA-F0-9]{64}$"
        },
        "from": {
          "type": "string",
          "description": "The sender address."
        },
        "to": {
          "type": "string",
          "description": "The recipient address."
        },
        "value": {
          "type": "string",
          "description": "The value transferred in the native token's smallest unit."
        },
        "blockNumber": {
          "type": "integer",
          "description": "The block number containing the transaction.",
          "minimum": 0
        },
        "blockTimestamp": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp of the block."
        }
      }
    },
    "TokenTransferData": {
      "type": "object",
      "description": "Data payload for token transfer events.",
      "required": ["transactionHash", "contractAddress"],
      "properties": {
        "transactionHash": {
          "type": "string",
          "description": "The hash of the transaction containing the transfer.",
          "pattern": "^0x[a-fA-F0-9]{64}$"
        },
        "from": {
          "type": "string",
          "description": "The sender address."
        },
        "to": {
          "type": "string",
          "description": "The recipient address."
        },
        "contractAddress": {
          "type": "string",
          "description": "The smart contract address of the transferred token."
        },
        "tokenName": {
          "type": "string",
          "description": "The name of the transferred token."
        },
        "tokenSymbol": {
          "type": "string",
          "description": "The symbol of the transferred token."
        },
        "value": {
          "type": "string",
          "description": "The amount transferred in the token's smallest unit."
        },
        "decimals": {
          "type": "integer",
          "description": "The number of decimal places for the token.",
          "minimum": 0
        },
        "blockNumber": {
          "type": "integer",
          "description": "The block number containing the transfer.",
          "minimum": 0
        },
        "blockTimestamp": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp of the block."
        }
      }
    },
    "NftTransferData": {
      "type": "object",
      "description": "Data payload for NFT transfer events.",
      "required": ["transactionHash", "contractAddress", "tokenId"],
      "properties": {
        "transactionHash": {
          "type": "string",
          "description": "The hash of the transaction containing the transfer.",
          "pattern": "^0x[a-fA-F0-9]{64}$"
        },
        "from": {
          "type": "string",
          "description": "The sender address."
        },
        "to": {
          "type": "string",
          "description": "The recipient address."
        },
        "contractAddress": {
          "type": "string",
          "description": "The smart contract address of the NFT collection."
        },
        "tokenId": {
          "type": "string",
          "description": "The token ID of the transferred NFT."
        },
        "tokenType": {
          "type": "string",
          "description": "The token standard type.",
          "enum": ["ERC-721", "ERC-1155"]
        },
        "quantity": {
          "type": "integer",
          "description": "The number of tokens transferred (relevant for ERC-1155).",
          "minimum": 1
        },
        "blockNumber": {
          "type": "integer",
          "description": "The block number containing the transfer.",
          "minimum": 0
        },
        "blockTimestamp": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp of the block."
        }
      }
    },
    "MinedTransactionData": {
      "type": "object",
      "description": "Data payload for mined transaction events.",
      "required": ["transactionHash"],
      "properties": {
        "transactionHash": {
          "type": "string",
          "description": "The hash of the mined transaction.",
          "pattern": "^0x[a-fA-F0-9]{64}$"
        },
        "from": {
          "type": "string",
          "description": "The sender address."
        },
        "to": {
          "type": "string",
          "description": "The recipient address."
        },
        "value": {
          "type": "string",
          "description": "The value transferred in the native token's smallest unit."
        },
        "status": {
          "type": "string",
          "description": "The execution status of the transaction.",
          "enum": ["success", "failed"]
        },
        "blockNumber": {
          "type": "integer",
          "description": "The block number in which the transaction was mined.",
          "minimum": 0
        },
        "blockTimestamp": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp of the block."
        },
        "gasUsed": {
          "type": "string",
          "description": "The amount of gas consumed by the transaction."
        }
      }
    }
  }
}