NAC_Blockchain/sdk/nac-cli/docs/NAC_RPC_METHODS.md

6.6 KiB
Raw Blame History

NAC RPC 方法规范

版本1.0
制定方NAC CLI工具组
日期2026-02-18

概述

NAC是原生RWA公链使用自己的RPC方法命名规范不继承以太坊的eth_*方法。

命名规范

格式: <模块>_<操作>

  • nac_* - 核心链功能
  • xtzh_* - XTZH预言机
  • acc_* - ACC协议系列
  • charter_* - Charter智能合约

核心方法列表

1. 账户相关 (nac_account_*)

方法名 参数 返回 说明
nac_account_getBalance address: Address Balance 获取账户余额
nac_account_getNonce address: Address u64 获取账户nonce
nac_account_getInfo address: Address AccountInfo 获取账户完整信息
nac_account_listAssets address: Address Asset[] 列出账户持有的RWA资产

2. 交易相关 (nac_tx_*)

方法名 参数 返回 说明
nac_tx_send SignedTransaction Hash 发送已签名交易
nac_tx_get hash: Hash Transaction 获取交易详情
nac_tx_getReceipt hash: Hash Receipt 获取交易收据
nac_tx_getStatus hash: Hash TxStatus 获取交易状态
nac_tx_estimateGas Transaction u64 估算Gas费用

3. 区块相关 (nac_block_*)

方法名 参数 返回 说明
nac_block_getByNumber number: u64 Block 按高度获取区块
nac_block_getByHash hash: Hash Block 按哈希获取区块
nac_block_getLatest - Block 获取最新区块
nac_block_getHeight - u64 获取当前区块高度
nac_block_getTransactions number: u64 Transaction[] 获取区块中的交易

4. Charter合约相关 (charter_*)

方法名 参数 返回 说明
charter_deploy bytecode: bytes, args: any[] Address 部署Charter合约
charter_call address: Address, method: string, args: any[] any 调用合约方法(只读)
charter_send address: Address, method: string, args: any[] Hash 发送合约交易
charter_getCode address: Address bytes 获取合约字节码
charter_getStorage address: Address, key: bytes32 bytes32 获取合约存储

5. ACC协议相关 (acc_*)

方法名 参数 返回 说明
acc_asset_create AssetParams Hash 创建RWA资产
acc_asset_get asset_id: string Asset 获取资产信息
acc_asset_transfer from, to, asset_id Hash 转移资产
acc_asset_listByOwner address: Address Asset[] 列出所有者的资产
acc_compliance_verify asset_id: string ComplianceReport 验证资产合规性

6. 宪法系统相关 (constitution_*)

方法名 参数 返回 说明
constitution_getClause clause_id: string Clause 获取宪法条款
constitution_listClauses layer: ClauseLayer Clause[] 列出指定层级的条款
constitution_verifyTx tx: Transaction ConstitutionalReceipt 验证交易的宪法合规性
constitution_getReceipt receipt_id: Hash ConstitutionalReceipt 获取宪法收据

7. CBPP共识相关 (cbpp_*)

方法名 参数 返回 说明
cbpp_getValidators - Validator[] 获取验证者列表
cbpp_getProposal proposal_id: u64 Proposal 获取提案详情
cbpp_submitProposal Proposal Hash 提交提案
cbpp_voteProposal proposal_id, vote Hash 对提案投票

8. XTZH预言机相关 (xtzh_*)

方法名 参数 返回 说明
xtzh_getRate features: i32[] RateResponse 获取XTZH汇率
xtzh_submitReceipt ReceiptSubmission SubmissionAck 提交汇率收据
xtzh_health - HealthResponse 健康检查

9. 节点相关 (node_*)

方法名 参数 返回 说明
node_getInfo - NodeInfo 获取节点信息
node_getPeers - Peer[] 获取对等节点列表
node_getHealth - HealthStatus 获取节点健康状态
node_getVersion - string 获取节点版本

10. 网络相关 (net_*)

方法名 参数 返回 说明
net_version - string 获取网络版本
net_peerCount - u64 获取对等节点数量
net_listening - bool 是否正在监听

数据类型

Address

NAC原生地址格式32字节

Hash

NAC原生哈希格式48字节SHA3-384

Transaction

{
  "from": "Address",
  "to": "Address",
  "value": "u128",
  "data": "bytes",
  "nonce": "u64",
  "gas_limit": "u64",
  "gas_price": "u128",
  "signature": "Signature"
}

Block

{
  "number": "u64",
  "hash": "Hash",
  "parent_hash": "Hash",
  "timestamp": "u64",
  "transactions": "Transaction[]",
  "validator": "Address"
}

Asset (RWA资产)

{
  "asset_id": "string (GNACS编码)",
  "owner": "Address",
  "asset_type": "AssetType",
  "value": "u128",
  "metadata": "object",
  "dna": "CryptoDNA"
}

错误码

错误码 说明
-32700 解析错误
-32600 无效请求
-32601 方法不存在
-32602 无效参数
-32603 内部错误
-40001 宪法验证失败
-40002 合规检查失败
-40003 资产不存在
-40004 余额不足

示例

获取账户余额

{
  "jsonrpc": "2.0",
  "method": "nac_account_getBalance",
  "params": {
    "address": "0x1234...abcd"
  },
  "id": 1
}

发送交易

{
  "jsonrpc": "2.0",
  "method": "nac_tx_send",
  "params": {
    "from": "0x1234...abcd",
    "to": "0x5678...efgh",
    "value": "1000000000000000000",
    "data": "0x",
    "nonce": 5,
    "gas_limit": 21000,
    "gas_price": "1000000000",
    "signature": "0x..."
  },
  "id": 2
}

获取XTZH汇率

{
  "jsonrpc": "2.0",
  "method": "xtzh_getRate",
  "params": {
    "features": []
  },
  "id": 3
}

注意事项

  1. 不要使用以太坊方法名 - NAC是原生链不继承ERC-20/ERC-721
  2. 使用NAC原生类型 - Address(32字节)、Hash(48字节)
  3. 遵循CBPP共识 - 所有交易需要宪法验证
  4. 支持RWA资产 - 使用ACC协议系列
  5. 集成XTZH预言机 - 汇率数据来自AI模型

版本历史

  • v1.0 (2026-02-18) - 初始版本