Uniblock · Schema

Uniblock Token

Schema representing a fungible token with metadata, balance, and transfer information as returned by the Uniblock Unified API.

BlockchainWeb3

Properties

Name Type Description
contractAddress string The smart contract address of the token on the blockchain.
chain string The blockchain network identifier (e.g., ethereum, polygon, solana).
name string The display name of the token.
symbol string The ticker symbol of the token.
decimals integer The number of decimal places the token uses.
logo string URL to the token logo image.
totalSupply string The total supply of the token in its smallest unit.
View JSON Schema on GitHub

JSON Schema

uniblock-token-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://uniblock.dev/schemas/uniblock/token.json",
  "title": "Uniblock Token",
  "description": "Schema representing a fungible token with metadata, balance, and transfer information as returned by the Uniblock Unified API.",
  "type": "object",
  "required": ["contractAddress", "chain"],
  "properties": {
    "contractAddress": {
      "type": "string",
      "description": "The smart contract address of the token on the blockchain."
    },
    "chain": {
      "type": "string",
      "description": "The blockchain network identifier (e.g., ethereum, polygon, solana)."
    },
    "name": {
      "type": "string",
      "description": "The display name of the token."
    },
    "symbol": {
      "type": "string",
      "description": "The ticker symbol of the token.",
      "maxLength": 20
    },
    "decimals": {
      "type": "integer",
      "description": "The number of decimal places the token uses.",
      "minimum": 0,
      "maximum": 18
    },
    "logo": {
      "type": "string",
      "format": "uri",
      "description": "URL to the token logo image."
    },
    "totalSupply": {
      "type": "string",
      "description": "The total supply of the token in its smallest unit.",
      "pattern": "^[0-9]+$"
    }
  },
  "$defs": {
    "TokenBalance": {
      "type": "object",
      "description": "Balance of a specific token held by a wallet address.",
      "required": ["contractAddress", "balance"],
      "properties": {
        "contractAddress": {
          "type": "string",
          "description": "The smart contract address of the token."
        },
        "name": {
          "type": "string",
          "description": "The display name of the token."
        },
        "symbol": {
          "type": "string",
          "description": "The ticker symbol of the token."
        },
        "decimals": {
          "type": "integer",
          "description": "The number of decimal places the token uses.",
          "minimum": 0
        },
        "balance": {
          "type": "string",
          "description": "The token balance in its smallest unit.",
          "pattern": "^[0-9]+$"
        },
        "balanceFormatted": {
          "type": "string",
          "description": "The token balance formatted with proper decimal places."
        }
      }
    },
    "TokenTransfer": {
      "type": "object",
      "description": "A token transfer event between two addresses on the blockchain.",
      "required": ["transactionHash", "from", "to", "value"],
      "properties": {
        "transactionHash": {
          "type": "string",
          "description": "The hash of the transaction containing this transfer.",
          "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 amount transferred in the token's smallest unit."
        },
        "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."
        },
        "blockNumber": {
          "type": "integer",
          "description": "The block number in which the transfer occurred.",
          "minimum": 0
        },
        "blockTimestamp": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp of the block in which the transfer occurred."
        }
      }
    },
    "TokenAllowance": {
      "type": "object",
      "description": "A token spending allowance granted to a spender contract.",
      "required": ["contractAddress", "spender", "allowance"],
      "properties": {
        "contractAddress": {
          "type": "string",
          "description": "The smart contract address of the token."
        },
        "spender": {
          "type": "string",
          "description": "The address of the approved spender."
        },
        "allowance": {
          "type": "string",
          "description": "The approved allowance amount in the token's smallest unit."
        },
        "tokenName": {
          "type": "string",
          "description": "The name of the token."
        },
        "tokenSymbol": {
          "type": "string",
          "description": "The symbol of the token."
        }
      }
    },
    "TokenPrice": {
      "type": "object",
      "description": "Price data for a token from aggregated market sources.",
      "properties": {
        "usdPrice": {
          "type": "number",
          "description": "The current price of the token in USD.",
          "minimum": 0
        },
        "chain": {
          "type": "string",
          "description": "The blockchain network."
        },
        "contractAddress": {
          "type": "string",
          "description": "The contract address of the token."
        }
      }
    }
  }
}