Robinhood Chain 股票代币:乘数怎么换算,持有人与每日活跃怎么查
读懂股票代币的公司行动乘数:uiMultiplier 采用 18 位定点数,1e18 代表 1.0,实际股数按原始代币余额乘以乘数再除以 1e18 换算,也可用链上辅助函数读取换算后的实际股数。
数据来自链上公开记录与智能合约状态,仅供参考,不构成投资建议。股票代币在部分国家与地区受到法律限制。
Robinhood Chain 支持代币化现实世界资产(RWA),涵盖美股与交易型开放式指数基金(ETF)。普通 ERC-20 代币的余额通常与底层资产保持 1:1 对应,但股票代币引入了公司行动乘数(multiplier),用于在拆股或股息再投资时动态调整对应股数,而无需变动持币地址的原始代币余额。
本文介绍股票代币乘数的工作机制、如何把代币余额换算为实际底层股票份额、如何通过 JSON-RPC eth_call 读取链上 uiMultiplier,以及如何使用 BlockVectra Data API 查询每日持有人与转账活跃数据。
关于 Robinhood Chain 的基础网络参数、方法策略与 RPC 接入,请参阅 Robinhood Chain 指南;关于股票数据集的通用字段定义与 CU(计算单元)用量模型,请参阅股票代币指南。
什么是股票代币乘数
Robinhood Chain 上的股票代币是由 Robinhood Assets (Jersey) Limited(RHJ)发行的标准 ERC-20 代币(精度为 18 位小数)。为了支持股票拆股与股息调整等公司行动,这些合约遵循 ERC-8056(Scaled UI Amount Extension) 规范。
乘数(uiMultiplier)定义了「每代币对应的底层股票份额」(shares-per-token):
- 返回精度:
uiMultiplier()采用 18 位定点数表示,数值1e18代表1.0。 - 初始数值:在代币初次发行时,乘数初始为
1e18(即 1 个代币对应 1 股底层股票)。 - 公司行动触发:当发生公司行动(例如股票拆股或股息再投资)时,合约更新
uiMultiplier,并抛出UIMultiplierUpdated(uint256 oldMultiplier, uint256 newMultiplier, uint256 effectiveAtTimestamp)事件。
拆股时余额不变而乘数调整
股票代币不是弹性供应(rebasing)代币。在公司行动发生时:
- 用户的原始持币余额(
balanceOf(account))以及代币总发行量(totalSupply())保持固定不变。 - 合约仅调整缩放乘数。
举个例子:某底层股票实施 2 拆 1 的正向拆股(2-for-1 forward split):
- 持有 10 个代币的用户,其链上
balanceOf依旧显示为 10。 - 合约内的
uiMultiplier由1.0(1e18)变更为2.0(2e18)。 - 每个代币现在代表 2 股底层股票,该用户所代表的实际底层持仓为 20 股。
怎样换算成「股数」
换算为底层股票数量遵循 Robinhood 官方文档给出的公式:
underlying shares = raw token amount × uiMultiplier ÷ 1e18ERC-8056 合约还在链上提供了辅助读取函数:
balanceOfUI(address account):直接返回指定账户对应的底层股票份额(已按uiMultiplier缩放,精度为 18 位)。totalSupplyUI():直接返回按底层股票份额计量的总供应量。
此外,代币转账时会触发 TransferWithScaledUI(address indexed from, address indexed to, uint256 value, uint256 uiValue) 事件,同时记录原始转账数值与换算后的底层股数。
乘数与预言机价格的关系
Robinhood Chain 为每个股票代币部署了专属的 Chainlink 价格预言机(AggregatorV3Interface):
- Chainlink 喂价(
latestRoundData())返回的价格已经预先包含了乘数调整(底层股票价格乘以乘数)。 - 读取链上 Chainlink 预言机时,拿到的是代币的完整实际单价,切勿重复乘以乘数。
- 若需通过链下接口获取元数据,Robinhood 提供了 REST 端点
GET https://api.robinhood.com/rhj/assets,返回各代币的currentMultiplier、pendingMultiplier以及待生效时间戳。
用 JSON-RPC eth_call 读取乘数
可以通过 BlockVectra 提供的 Robinhood Chain JSON-RPC 端点,发起标准 eth_call 调用合约读取乘数:
- 函数名称:
uiMultiplier() - 4 字节函数选择器:
0xa60bf13d(即bytes4(keccak256("uiMultiplier()"))) - 返回格式:32 字节十六进制编码的
uint256(18 位定点数)
BlockVectra 在 https://api.blockvectra.com/v1/robinhood_mainnet 提供 Robinhood Chain 的 JSON-RPC 服务。可通过 x-api-key 请求头传入 API key,或把 key 拼入路径(https://api.blockvectra.com/v1/robinhood_mainnet/{api_key})。
代码示例
以下示例对 Robinhood Chain 上的 Everpure 股票代币合约(0x1Cdad396DB64BDa184d5182A97Dd9B3C62100b7D)查询 uiMultiplier():
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"
]
}'用 Data API 查股票代币持有人与每日活跃
BlockVectra Data API 为代币化股票提供预索引的每日汇总。使用 GET /v1/data/robinhood_mainnet/stocks 获取每日活跃榜单,使用 GET /v1/data/robinhood_mainnet/stocks/{token} 获取单个代币的元数据与最近最多 30 天的每日指标。请求参数、响应字段与示例见代币化股票指标指南。
合规说明
Robinhood 股票代币是由 Robinhood Assets (Jersey) Limited(RHJ)发行的代币化债务证券。发售说明书、最终条款与适用地区的法律声明见 Robinhood RHJ 官方说明。
下一步
最后更新:
测试网水龙头
用自己的 API key 领取 Robinhood Chain 测试网 ETH(每次 0.001)。测试网链 ID 46630,免 key RPC 地址 https://api.blockvectra.com/v1/robinhood_testnet/public;含领取限额与错误处理。
代币化股票指标
用 API key 查询 Robinhood Chain 股票代币的转账、持有者与余额: /tokens/{token}/transfers、 /tokens/{token}/holders 与 /addresses/{address}/balances,另有 /stocks 返回每日转账与持币地址数。链上活动数据,不是股票报价。