Uniblock Tokens API
Endpoints for retrieving fungible token data including metadata, balances, prices, transfers, and allowances across multiple blockchain networks.
Endpoints for retrieving fungible token data including metadata, balances, prices, transfers, and allowances across multiple blockchain networks.
openapi: 3.1.0
info:
title: Uniblock Direct Direct Pass-Through Tokens API
description: The Uniblock Direct API gives developers pass-through access to provider-specific endpoints exactly as offered by upstream blockchain data providers. Requests follow the pattern of specifying the provider and optional prefix in the URL path, while still benefiting from Uniblock's routing, retry, and failover infrastructure. Results are returned exactly as they would be if the first-party provider endpoint was called directly. This is intended for use cases where a specific method is not yet abstracted into the Unified API.
version: '1.0'
contact:
name: Uniblock Support
url: https://docs.uniblock.dev
termsOfService: https://uniblock.dev/terms
servers:
- url: https://api.uniblock.dev/direct/v1
description: Uniblock Direct API Production Server
security:
- apiKeyHeader: []
tags:
- name: Tokens
description: Endpoints for retrieving fungible token data including metadata, balances, prices, transfers, and allowances across multiple blockchain networks.
paths:
/token/metadata:
get:
operationId: getTokenMetadata
summary: Get Token Metadata
description: Retrieves metadata about a specific fungible token including name, symbol, decimals, and contract details. Supports multiple blockchain networks through automatic provider routing.
tags:
- Tokens
parameters:
- $ref: '#/components/parameters/chainParam'
- $ref: '#/components/parameters/contractAddressParam'
responses:
'200':
description: Successful response with token metadata
content:
application/json:
schema:
$ref: '#/components/schemas/TokenMetadataResponse'
'400':
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized - missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Token not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/token/balance:
get:
operationId: getTokenBalance
summary: Get Token Balances
description: Retrieves the native and fungible token balances associated with a specific wallet address. Returns balances across tokens held by the address on the specified blockchain network.
tags:
- Tokens
parameters:
- $ref: '#/components/parameters/chainParam'
- $ref: '#/components/parameters/walletAddressParam'
responses:
'200':
description: Successful response with token balances
content:
application/json:
schema:
$ref: '#/components/schemas/TokenBalanceResponse'
'400':
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized - missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/token/balance/historical:
get:
operationId: getTokenBalanceHistorical
summary: Get Historical Token Balances
description: Retrieves historical token balances for a specific wallet address at a given point in time, enabling tracking of balance changes over time.
tags:
- Tokens
parameters:
- $ref: '#/components/parameters/chainParam'
- $ref: '#/components/parameters/walletAddressParam'
- name: blockNumber
in: query
description: The block number at which to retrieve the historical balance.
schema:
type: integer
responses:
'200':
description: Successful response with historical token balances
content:
application/json:
schema:
$ref: '#/components/schemas/TokenBalanceResponse'
'400':
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized - missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/token/transfers:
get:
operationId: getTokenTransfers
summary: Get Token Transfers
description: Retrieves a list of token transfers for a specific wallet address, including both incoming and outgoing transfers of fungible tokens. Useful for tracking token swaps and transfer history.
tags:
- Tokens
parameters:
- $ref: '#/components/parameters/chainParam'
- $ref: '#/components/parameters/walletAddressParam'
- $ref: '#/components/parameters/limitParam'
- $ref: '#/components/parameters/cursorParam'
responses:
'200':
description: Successful response with token transfers
content:
application/json:
schema:
$ref: '#/components/schemas/TokenTransfersResponse'
'400':
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized - missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/token/allowances:
get:
operationId: getTokenAllowances
summary: Get Token Allowances
description: Retrieves token allowances granted by a specific wallet address to spender contracts. Useful for inspecting which contracts have approval to spend tokens on behalf of the wallet owner.
tags:
- Tokens
parameters:
- $ref: '#/components/parameters/chainParam'
- $ref: '#/components/parameters/walletAddressParam'
responses:
'200':
description: Successful response with token allowances
content:
application/json:
schema:
$ref: '#/components/schemas/TokenAllowancesResponse'
'400':
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized - missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/token/price:
get:
operationId: getTokenPrice
summary: Get Token Price
description: Retrieves the current USD price for a specific token by its contract address and chain. Aggregates pricing data from multiple exchange and data provider sources.
tags:
- Tokens
parameters:
- $ref: '#/components/parameters/chainParam'
- $ref: '#/components/parameters/contractAddressParam'
responses:
'200':
description: Successful response with token price
content:
application/json:
schema:
$ref: '#/components/schemas/TokenPriceResponse'
'400':
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized - missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/token/price/historical:
get:
operationId: getTokenPriceHistorical
summary: Get Historical Token Price
description: Retrieves the historical price, volume, and market cap of a token at a given date, enabling analysis of price movements over time.
tags:
- Tokens
parameters:
- $ref: '#/components/parameters/chainParam'
- $ref: '#/components/parameters/contractAddressParam'
- name: date
in: query
description: The date for which to retrieve historical price data in ISO 8601 format.
schema:
type: string
format: date
responses:
'200':
description: Successful response with historical token price
content:
application/json:
schema:
$ref: '#/components/schemas/TokenPriceHistoricalResponse'
'400':
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized - missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
TokenPriceHistoricalResponse:
type: object
description: Response containing historical price data for a token.
properties:
success:
type: boolean
description: Indicates whether the request was successful.
data:
type: object
description: Historical token price data.
properties:
usdPrice:
type: number
format: double
description: The historical price of the token in USD.
date:
type: string
format: date
description: The date of the historical price.
volume:
type: number
format: double
description: The trading volume on the specified date.
marketCap:
type: number
format: double
description: The market capitalization on the specified date.
TokenTransfer:
type: object
description: A single token transfer event between two addresses.
properties:
transactionHash:
type: string
description: The hash of the transaction containing this transfer.
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.
blockTimestamp:
type: string
format: date-time
description: The timestamp of the block in which the transfer occurred.
TokenBalance:
type: object
description: Balance of a specific token held by a wallet address.
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.
balance:
type: string
description: The token balance in its smallest unit.
balanceFormatted:
type: string
description: The token balance formatted with proper decimal places.
TokenTransfersResponse:
type: object
description: Response containing a paginated list of token transfers.
properties:
success:
type: boolean
description: Indicates whether the request was successful.
data:
type: array
description: List of token transfer events.
items:
$ref: '#/components/schemas/TokenTransfer'
cursor:
type: string
description: Pagination cursor for the next page of results.
TokenPriceResponse:
type: object
description: Response containing the current price of a token.
properties:
success:
type: boolean
description: Indicates whether the request was successful.
data:
type: object
description: Token price data.
properties:
usdPrice:
type: number
format: double
description: The current price of the token in USD.
chain:
type: string
description: The blockchain network.
contractAddress:
type: string
description: The contract address of the token.
TokenMetadataResponse:
type: object
description: Response containing metadata about a fungible token.
properties:
success:
type: boolean
description: Indicates whether the request was successful.
data:
$ref: '#/components/schemas/TokenMetadata'
TokenBalanceResponse:
type: object
description: Response containing token balances for a wallet address.
properties:
success:
type: boolean
description: Indicates whether the request was successful.
data:
type: array
description: List of token balances held by the address.
items:
$ref: '#/components/schemas/TokenBalance'
ErrorResponse:
type: object
description: Standard error response returned when a request fails.
properties:
success:
type: boolean
description: Indicates whether the request was successful.
example: false
error:
type: object
description: Error details object.
properties:
code:
type: string
description: Machine-readable error code.
message:
type: string
description: Human-readable error message describing what went wrong.
TokenAllowancesResponse:
type: object
description: Response containing token allowances granted by a wallet address.
properties:
success:
type: boolean
description: Indicates whether the request was successful.
data:
type: array
description: List of token allowances.
items:
$ref: '#/components/schemas/TokenAllowance'
TokenMetadata:
type: object
description: Metadata for a fungible token including identifiers and contract details.
properties:
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.
contractAddress:
type: string
description: The smart contract address of the token.
chain:
type: string
description: The blockchain network the token exists on.
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.
TokenAllowance:
type: object
description: A token allowance granted to a spender contract.
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.
tokenName:
type: string
description: The name of the token.
tokenSymbol:
type: string
description: The symbol of the token.
parameters:
walletAddressParam:
name: address
in: query
required: true
description: The wallet address to query data for.
schema:
type: string
chainParam:
name: chain
in: query
required: true
description: The blockchain network identifier (e.g., ethereum, polygon, solana, bsc, arbitrum, optimism, avalanche, base).
schema:
type: string
examples:
- ethereum
- polygon
- solana
limitParam:
name: limit
in: query
description: Maximum number of results to return per page.
schema:
type: integer
minimum: 1
maximum: 100
default: 25
cursorParam:
name: cursor
in: query
description: Pagination cursor for retrieving the next page of results.
schema:
type: string
contractAddressParam:
name: contractAddress
in: query
required: true
description: The smart contract address of the token.
schema:
type: string
securitySchemes:
apiKeyHeader:
type: apiKey
in: header
name: x-api-key
description: Uniblock project API key passed as a header. If no provider-specific authentication is passed in the request, Uniblock will use the credentials stored in the project associated with this API key.
externalDocs:
description: Uniblock Direct API Documentation
url: https://docs.uniblock.dev/docs/direct-api-overview