Robinhood Chain stock tokens: reading the multiplier, holders and daily activity with one API key
Understand the Robinhood Chain stock token multiplier, convert balances to shares, read uiMultiplier via eth_call, and track holders and daily activity via the Data API.
Data is derived from public on-chain records and smart contract state. It is for informational purposes only and does not constitute investment advice. Stock tokens carry jurisdictional restrictions.
Robinhood Chain supports tokenized real-world assets (RWAs), including tokenized US equities and exchange-traded funds (ETFs). While standard ERC-20 tokens map balances 1:1, tokenized stocks introduce a corporate-action multiplier to accommodate stock splits and dividend adjustments without changing wallet balances.
This guide explains how the stock token multiplier operates, how to convert raw token balances into underlying share counts, how to query uiMultiplier on-chain using JSON-RPC eth_call, and how to retrieve daily holders and transfer activity through the BlockVectra Data API.
For broad network parameters, method policies, and RPC setup, see the Robinhood Chain guide. For comprehensive field references and Compute Unit (CU) usage models for the dataset, see the Tokenized stocks guide.
What is the stock token multiplier
Robinhood stock tokens are standard ERC-20 tokens (with 18 decimals) issued by Robinhood Assets (Jersey) Limited (RHJ). To handle corporate actions such as stock splits and reinvested dividends, these contracts implement ERC-8056 (Scaled UI Amount Extension).
The multiplier (uiMultiplier) defines the shares-per-token ratio:
- Precision:
uiMultiplier()is represented as an 18-decimal fixed-point number, where1e18equals1.0. - Initial value: At token issuance, the multiplier is initialized to
1e18(one token represents one underlying share). - Corporate actions: When a corporate event takes place (such as a forward stock split or a reinvested dividend), the token contract updates
uiMultiplierand emits theUIMultiplierUpdated(uint256 oldMultiplier, uint256 newMultiplier, uint256 effectiveAtTimestamp)event.
Fixed token balances during splits
Stock tokens are not rebasing tokens. During corporate actions:
- Wallet balances (
balanceOf(account)) and total token issuance (totalSupply()) remain unchanged. - Only the scaling multiplier changes.
For example, if an underlying stock executes a 2-for-1 forward split:
- A holder who owns 10 tokens continues to hold 10 tokens in
balanceOf. - The contract updates
uiMultiplierfrom1.0(1e18) to2.0(2e18). - Each token now represents 2 underlying shares, giving the holder an effective exposure of 20 shares.
Converting balances to share count
To compute the number of underlying shares represented by a token balance, use the formula specified in official Robinhood documentation:
underlying shares = raw token amount × uiMultiplier ÷ 1e18ERC-8056 token contracts also expose read-only helper functions on-chain:
balanceOfUI(address account): Directly returns the account's balance expressed in underlying shares (scaled byuiMultiplier, 18 decimals).totalSupplyUI(): Directly returns the total token supply expressed in underlying shares.
In addition, token transfers emit the TransferWithScaledUI(address indexed from, address indexed to, uint256 value, uint256 uiValue) event, recording both the raw token amount and the scaled underlying-share count.
Multiplier and oracle price feeds
Robinhood Chain deploys a dedicated Chainlink price feed (AggregatorV3Interface) for each stock token:
- The Chainlink price feed (
latestRoundData()) already incorporates the multiplier. It reflects the full market price of one token (underlying share price multiplied by the multiplier). - Applications reading the on-chain Chainlink oracle receive the multiplier-adjusted price directly and must not apply the multiplier a second time.
- Off-chain metadata can also be checked via Robinhood's REST endpoint
GET https://api.robinhood.com/rhj/assets, which providescurrentMultiplier,pendingMultiplier, andpendingMultiplierEffectiveTime.
Reading the multiplier with JSON-RPC eth_call
You can inspect the multiplier of any tokenized stock directly via BlockVectra's JSON-RPC endpoint for Robinhood Chain using eth_call.
- Function:
uiMultiplier() - 4-byte function selector:
0xa60bf13d(bytes4(keccak256("uiMultiplier()"))) - Return format: 32-byte hex-encoded
uint256(18-decimal fixed-point value)
BlockVectra serves Robinhood Chain JSON-RPC requests under https://api.blockvectra.com/v1/robinhood_mainnet. Pass your API key via the x-api-key header or append it to the path (https://api.blockvectra.com/v1/robinhood_mainnet/{api_key}).
Code examples
The examples below query uiMultiplier() on the Everpure stock token contract (0x1Cdad396DB64BDa184d5182A97Dd9B3C62100b7D):
curl -s "https://api.blockvectra.com/v1/robinhood_mainnet" \
-H "Content-Type: application/json" \
-H "x-api-key: $BLOCKVECTRA_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_call",
"params": [
{
"to": "0x1Cdad396DB64BDa184d5182A97Dd9B3C62100b7D",
"data": "0xa60bf13d"
},
"latest"
]
}'Querying holders and daily activity with the Data API
While JSON-RPC delivers point-in-time contract state, aggregating historical transfers, net supply changes, and holder distributions across blocks requires indexing. The BlockVectra Data API provides pre-indexed daily summaries for tokenized stocks.
Available stock endpoints
Under /v1/data/robinhood_mainnet/, the Data API specification (data.yaml) defines two endpoints for stock tokens:
GET /v1/data/robinhood_mainnet/stocks: Daily activity leaderboard of tokenized stocks for a specified UTC calendar date, ordered by transfer activity descending.GET /v1/data/robinhood_mainnet/stocks/{token}: Token contract metadata and up to 30 days of recent daily metrics for a specific token address.
Daily leaderboard (GET /v1/data/robinhood_mainnet/stocks)
This endpoint lists all tokenized stocks active on a given UTC date along with their transfer counts, active participant counts, supply adjustments, and holder distribution metrics.
Parameters
chain(path parameter, required): Network identifier,robinhood_mainnet.day(query parameter, optional): UTC date formatted asYYYY-MM-DD. Defaults to the latest recorded date when omitted. If no activity is recorded on that date, returns HTTP200withdata: []. Invalid formats return HTTP400(error.code = "bad_request").limit(query parameter, optional): Maximum items to return. Defaults to 50; values above 500 are clamped to 500.
Response fields (StockDailyListEnvelope)
The response envelope contains data (an array of StockDaily records) and meta:
| Field | Type | Description |
|---|---|---|
day | string (date) | UTC aggregation date (YYYY-MM-DD). |
token | string (address) | 20-byte token contract address (0x + 40 lowercase hex characters). |
symbol | string | Ticker symbol. |
name | string | Token display name (empty string "" when unavailable). |
transfers | integer (int64) | Total on-chain transfers on this UTC day. |
unique_senders | integer (int64) | Unique sender addresses initiating transfers on this day. |
unique_receivers | integer (int64) | Unique recipient addresses receiving transfers on this day. |
mint_raw_amount | string (decimal) | Total raw token amount minted on this day (UInt256 serialized as string). |
burn_raw_amount | string (decimal) | Total raw token amount burned on this day (UInt256 serialized as string). |
net_supply_change | string (decimal) | Net supply change on this day (signed Int256 serialized as string). |
holder_count | integer (int64) | Total holder address count. |
top10_holder_share_bps | integer | Combined share of the top 10 holders in basis points (0–10000, 100 bps = 1%). |
dex_swap_count | integer (int64) | Number of DEX swaps involving this token on this day. |
dex_raw_volume | string (decimal) | Total DEX raw trading volume on this day (UInt256 serialized as string). |
refreshed_at | string (timestamp) | ISO-8601 UTC timestamp when this daily record was refreshed. |
curl -s "https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks?day=2026-09-30&limit=10" \
-H "x-api-key: $BLOCKVECTRA_API_KEY"Single token historical metrics (GET /v1/data/robinhood_mainnet/stocks/{token})
This endpoint retrieves contract deployment metadata alongside up to 30 days of daily metrics in the daily array, ordered by date descending (newest first).
Parameters
chain(path parameter, required): Network identifier,robinhood_mainnet.token(path parameter, required): 20-byte token contract address. Case-insensitive;0xprefix is optional. Unknown tokens return HTTP404(error.code = "not_found").
Response fields (StockTokenEnvelope)
The response envelope wraps a StockToken object:
- Metadata:
address: Contract address.symbol: Ticker symbol.name: Full token name.decimals: Token decimals (0–255, ornull).created_block: Block height at which the contract was created.created_tx_hash: Transaction hash of contract deployment.factory: Factory contract address.creator: Deployer address (nullif unknown).mint_address: Authorized mint address (nullif unknown).burn_address: Authorized burn address (nullif unknown).refreshed_at: ISO-8601 timestamp of metadata update.
daily: Array ofStockDailyMetricobjects (up to 30 days), each containing:day,transfers,unique_senders,unique_receiversmint_raw_amount,burn_raw_amount,net_supply_changeholder_count,top10_holder_share_bpsdex_swap_count,dex_raw_volume,refreshed_at
curl -s "https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks/0x1Cdad396DB64BDa184d5182A97Dd9B3C62100b7D" \
-H "x-api-key: $BLOCKVECTRA_API_KEY"Regulatory notes and jurisdictional restrictions
- Public on-chain data: Metrics surfaced by the Data API and JSON-RPC (
holder_count,transfers,dex_swap_count,uiMultiplier, etc.) track public on-chain activity and contract state. They do not constitute market equity prices, valuations, or financial advice. - Not investment advice: This technical guide does not constitute an offer, solicitation, or recommendation to acquire or trade any asset.
- Jurisdictional restrictions: Stock tokens are tokenised debt securities issued by Robinhood Assets (Jersey) Limited (RHJ), incorporated in Jersey (registration number 162428). They provide economic exposure to underlying securities but do not grant legal or beneficial ownership rights in those underlying equities. Stock tokens are not registered under the U.S. Securities Act of 1933 and may not be offered, sold, or delivered in the United States or to U.S. Persons. Offers and sales are also subject to restrictions in other jurisdictions, including the United Kingdom, Canada, and Switzerland. For complete prospectuses, final terms, and jurisdictional notices, consult the Robinhood RHJ documentation and the Robinhood Chain stock tokens overview.
Next steps
- Browse the datasets directory to see every dataset BlockVectra indexes.
- See the free plan and pricing to check what your account includes.
- Log in to the console to create an API key.
Last updated:
Tokenized stocks
Query daily tokenized stock leaderboards and historical metrics with the Data API, covering fields, encoding conventions, pagination, and usage estimates.
DEX daily prices
Query daily DEX OHLC prices and VWAP from the Data API, handle exact rational fractions in TypeScript and Python, and backfill historical data efficiently.