查询Near锁定地址余额计算方式及锁定余额获取方法
Near锁定地址余额计算与获取方案
一、锁定地址余额的特殊逻辑
35b2e85e2e7add13abcd8ae62998cbfad9bad5bf.lockup.near属于Near的lockup合约账户,这类账户的余额并非通过普通转账交易的deposit累积,而是由合约初始化时设定的初始锁定额度,结合解锁规则、质押奖励等内部逻辑维护更新。因此你看到交易记录里的deposit全为0是正常现象——没有外部转入操作,余额变动都在合约内部完成。
二、余额的正确获取方法
1. 调用lockup合约的视图方法
Near的标准lockup合约提供专属视图接口,直接查询账户的结构化余额数据,这是最准确的方式。示例主网归档RPC调用:
curl -X POST https://archival-rpc.mainnet.near.org \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": "1", "method": "query", "params": { "request_type": "call_function", "account_id": "35b2e85e2e7add13abcd8ae62998cbfad9bad5bf.lockup.near", "method_name": "get_account_balance", "args_base64": "e30=" } }'
返回结果会区分可提取余额、锁定余额等细分字段,区块浏览器显示的3.50036 Ⓝ通常对应可提取余额或总余额,可结合字段说明判断。
2. 查看区块浏览器的合约状态面板
主流Near区块浏览器(比如Near Explorer)会专门提供合约数据板块,直接展示lockup合约返回的结构化信息,无需自行解析RPC结果,就能直观看到账户的总余额、已解锁金额等数据。
三、lockup balance的获取方式
lockup balance指当前仍处于锁定状态的NEAR数量,可通过两种方式获取:
- 直接调用
get_lockup_information方法:返回结果中的locked_amount(或类似命名字段)即为lockup balance,示例RPC调用:
curl -X POST https://archival-rpc.mainnet.near.org \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": "1", "method": "query", "params": { "request_type": "call_function", "account_id": "35b2e85e2e7add13abcd8ae62998cbfad9bad5bf.lockup.near", "method_name": "get_lockup_information", "args_base64": "e30=" } }'
- 间接计算:用合约初始化时的总锁定额度,减去调用
get_unlocked_balance得到的已解锁金额,差值即为剩余锁定余额。
关键注意点
- lockup账户的余额变动不产生普通转账交易,因此无法通过交易记录追溯余额来源;
- 普通的
view_account接口只能获取账户表层余额,无法区分锁定与可提取部分,必须调用lockup合约的专属视图方法才能拿到准确数据。
内容的提问来源于stack exchange,提问作者Swornatoya
相关产品推荐
相关产品推荐

