# @anywalletkit/wallet-tron 中文文档

规范地址：https://npmcn.com/package/%40anywalletkit/wallet-tron/

版本：0\.6\.2
npm 元数据更新时间：2026-11-02T20:19:27.098Z
中文译文更新时间：2026-11-06T18:09:43.066Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40anywalletkit/wallet-tron
原文对照：https://npmcn.com/package/%40anywalletkit/wallet-tron/?lang=original
项目主页：https://docs.anywallet.tech/
源码仓库：https://github.com/ultratestbro/anywalletkit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：830 kB，17 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：4 个
- 首次发布：2026-10-24T18:43:29.329Z
- 最新版本发布：2026-11-02T20:19:26.743Z
- 近 30 天下载量：2508（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 13 个）

## 中文简介

Any Walet Kit的Tron钱包:BIP-32m/44'/195'/0'/0/i帐号,TRX和TRC-20根据全节点HTTP API进行转帐,没有tronweb.

## 安装

```sh
npm install @anywalletkit/wallet-tron
```

也可以使用：`pnpm add @anywalletkit/wallet-tron`、`yarn add @anywalletkit/wallet-tron`、`bun add @anywalletkit/wallet-tron`

## README

# @ anywalletkit/wallet-tron (英语)

[![npm](https://img.shields.io/npm/v/@anywalletkit/wallet-tron?label=npm)](https://www.npmjs.com/package/@anywalletkit/wallet-tron)

Tron 账户 `m/44'/195'/0'/0/i` (BIP-44 — TronLink 默认值),由金色来支撑 向量在 `@anywalletkit/conformance`。没有子网:全节点的 HTTP API 构建 `raw_data`账户检查,模拟,标志 `txID` 与高贵的秒256k1 和广播.

## 安装

```sh
npm install @anywalletkit/wallet-tron
# or: pnpm add @anywalletkit/wallet-tron  ·  yarn add @anywalletkit/wallet-tron
```

时间: [@ anywalletkit/wallet-tron (英语)](https://www.npmjs.com/package/@anywalletkit/wallet-tron)发表于 [发布工作流程](https://github.com/ultratestbro/anywalletkit/blob/main/RELEASING.md) 与出处.

```ts
import WalletManagerTron from '@anywalletkit/wallet-tron'

const wallet = new WalletManagerTron(seedPhrase, { provider: ['https://api.trongrid.io', 'https://tron-rpc.example'], headers: { 'TRON-PRO-API-KEY': key } })
const account = await wallet.getAccount(0)
await account.transfer({ recipient: 'T…', amount: 1_000_000n })                    // 1 TRX (sun)
await account.transfer({ token: USDT_TRC20, recipient: 'T…', amount: 1_000_000n }) // TRC-20
await account.sendTransaction({ contractAddress, functionSelector: 'approve(address,uint256)', parameters: [...] })
const sig = await account.sign('hello')                                            // TIP-191, 0x + r||s||v (27/28)
wallet.dispose()
```

`provider` 是一个或多个全节点urls(或自定义的运输);列表按顺序失效,以及 之后每个 url 请求时间 `timeoutMs` (违约15 000)。 一个没有回答的广播 重排为同一签名字节( 1) `txID`,接受过一次)到下一个提供者 `DUP_TRANSACTION_ERROR` 计数为已接受; 当节点回答时, 它会扔出 `BroadcastUnknownError` 与 `txID` ——看好,不要再建设和签署. 太阳是 从 url 提供者中读取,而不进行四舍五入(高于 2^53 的提示要精确); 自定义运输 拒绝转移超过 2^53 - 1 太阳 节点建立它.

## 签名前会发生什么

每个 `signTransaction` 编号 : `sendTransaction` 编号 : `transfer` 穿过同一个大门:

1.  **硬检查** (单位:千美元)`UnsafeTransactionError`,带有 `code`\- 一份合同; `owner_address` 是这个账户; `ref_block_bytes` 编号 : `ref_block_hash` 提供方的参考文献 屏蔽所配置网络的块(`ref-block-mismatch`; Tron 签名约束于其 ——离线,除非 `allowOfflineTestnetSigning: true` (单位:千美元)`offline-network`(三); `raw_data.data` 最多512个字节(`memo`(三); `expiration` 未来的未来和 最多24小时; 没有 TRX / TRC-20 转到零地址, 除非 `allowBurn: true`· ; `fee_limit` 加紧执行 `transactionMaxFee` 财务报告和审定财务报表 `WriteOptions.maxFee`,以及 `fee_limit` 加减 带宽/备忘/激活费不在上限内(`fee-limit`(无) `AccountPermissionUpdateContract` (掌声) 账户的密钥结束),除非 `allowPermissionChanges: true` (单位:千美元)`permission-change`; 无合同类型 钱包无法解码, 除非 `allowUndecodedContracts: true` (单位:千美元)`undecoded-contract`· ; `VoteWitnessContract` 仅重新分配选票并签字)。 同样的检查运行在 `signRaw`,哪个 带 `WriteOptions` 并保存交易上的签名( 多相码联合签名) : 收费上限 它通过提供商定价字节 并拒绝合同呼叫 `fee_limit`, (中文(简体) ), 或在没有供应商的情况下进行的任何交易。 合同呼叫参数必须与 `functionSelector` 签名和编码每个ABI字(`encodeCall`) (中文(简体) ).
2.  **模拟** (单位:千美元)`SimulationError`关闭 `simulate: false`:合同电话通过 `/wallet/triggerconstantcontract` 且还原理由为ABI-解码(`Error(string)`, (中文(简体) ), `Panic`);TRX转账检查余额是否包括金额+费用.
3.  **费用估计** 编辑 `transferMaxFee` 编号 : `transactionMaxFee` 盖.

`describeTransaction(tx)` 告诉你交易是做什么的,离线: `trx-transfer`, (中文(简体) ), `trc20-transfer`, (中文(简体) ), `trc20-approve`, (中文(简体) ), `contract-call`, (中文(简体) ), `freeze`, (中文(简体) ), `unfreeze` ——已解码 收款人/金额/支出人和警告(`unlimited-approve`, (中文(简体) ), `zero-address`, (中文(简体) ), `memo-fee`, (中文(简体) ), `expired`) (中文(简体) ). `account.describeTransactionOnline(tx)` 添加 `unactivated-recipient`。 。 。 .

## 收费

`account.estimateFee(tx)` → `{ bandwidth, energy, trxBurn, breakdown }`时 `trxBurn` 实值 寄件者在输入/ 免费资源后实际支付的( 日) :

-   **带宽** 点=序列大小(`raw_data` + protobuf 信封 + 65字节签名)
    -   64字节结果储备——268个TRX转让,~345个TRC-20转让. 被绑住 带宽首先使用,然后是免费的每日津贴,否则 `getTransactionFee` 每分太阳.
-   **能源** =: `energy_used` 常有的呼唤;没有遮住的能量被烧毁 时间 `getEnergyFee`。 。 。 . `fee_limit` 默认为能×价格×1.2(封顶于 `transactionMaxFee` 和电话 `maxFee`) (中文(简体) ).
-   **账户创建** (TRX转到一个隐形地址): `getCreateNewAccountFeeInSystemContract` (1 TRX)加 `getCreateAccountFee` (0.1 TRX) 除非悬浮带宽覆盖字节—— 创建时不接受免费带宽.
-   **备忘** (单位:千美元)`raw_data.data`: `getMemoFee` (1 TRX) (中文(简体) ).

`quoteSendTransaction` 编号 : `quoteTransfer` 返回时 `{ fee: trxBurn, activationFee, estimate }`。 。 。 .

## 备忘录`raw_data.data`(中文(简体) )

`transfer({ …, memo })`, (中文(简体) ), `{ to, value, memo }` 和与 `memo` 附 录 文本作为节点所构建的 protobuf 字段 10 `raw_data`。记录在 其犬类位置(在 `expiration`,在 `contract`)所以说 `txID` 我们签了 等于从它自己的再序列化中重排的 Java-tron ; JSON 广播 带有与 `raw_data.data` (hex) (英语). 备忘录费`getMemoFee`, 1 TRX) (中文(简体) ) 带宽显示在 `estimateFee`,以及 `describeTransaction` 报告 备忘 `memo-fee` 警告 警告他们 备忘录被封为 512 UTF-8 字节; 附加 一到已经包含的交易 `raw_data.data` 被拒绝.

## 签名人

通过一秒256k1的账号 `Signer` 从 `@anywalletkit/core`: 种子路径 使用a `LocalSigner` (零时 `dispose()`(三); `new WalletManagerTron(signer)` 包装 一个外部的(硬件、MPC、后端)。 交易请求 `ecdsa-recoverable` 结束 `sha256(raw_data)` 内容 `tron-tx`, TIP-191 信息与 `tron-message`。 。 。 . 一个衍生 `SeedSigner` 时间 `m/44'/195'/0'/0` 产量 `getAccount(i)` 儿童;任何 其他签名符是 `getAccount(0)` 只有这个. `WalletAccountTron.fromPrivateKey(…)` 留着 生键形.

## 活动历史

`createTronHistory` 是链子 `HistorySource` (单位:千美元)`@anywalletkit/core`在特龙格里德上空.

```ts
import { createTronHistory } from '@anywalletkit/wallet-tron/history'

const history = createTronHistory({ apiKey: process.env.TRONGRID_KEY })
const page = await history.listActivity('TVSz6xJL2M53HDZyFTeDcGCmEDdwmU4zbv', { limit: 25 })
const older = await history.listActivity(address, { cursor: page.cursor })
const one = await history.getTransaction(page.items[0].hash, address)
history.explorerTxUrl(one.hash) // https://tronscan.org/#/transaction/…
```

| 选项 | 默认 | 说明 |
| --- | --- | --- |
| `apiUrl` | `https://api.trongrid.io` (树根/ 无根由 `network`(中文(简体) ) | 任意TronGrid相容的主机. |
| `apiKey` | 无 | `TRON-PRO-API-KEY`。无密钥 TronGrid 允许 **每个终点1个请求/s** (答复) `request rate exceeded the allowed_rps(1)`) (中文(简体) ). |
| `network` | `mainnet` | `tron:0x2b6653dc` /shasta/无. |
| `rateLimit` | 1 rps 无密钥, 10 有密钥 |  |
| `fetch`, (中文(简体) ), `timeoutMs` | 全球,15 000 |  |

**名单.** `GET /v1/accounts/{a}/transactions` 财务报告和审定财务报表 `GET /v1/accounts/{a}/transactions/trc20`,两者 `limit`, (中文(简体) ), `order_by=block_timestamp,desc`, (中文(简体) ), `fingerprint` 继续并 `min_timestamp` 何时 `since` 由 txID: a 合并而成 `TriggerSmartContract` 加上它的TRC-20是一行 `ChainTx` 其标志性腿出自TRC-20排行`token` =合同, `standard: 'trc20'`, (中文(简体) ), `symbol`, (中文(简体) ), `decimals` 从 `token_info`) (中文(简体) ). 仅从TRC-20列表中得知的转会(有人的电话将信使移到地址)是自己的一行: `confirmed`,没有 `fee`,没有 `call`,没有 `block`。 。 。 . `TransferContract` ——本地转移和 `nativeValue`· ; `TransferAssetContract` \* 与TRC-10 id的转会 `token`· ; `TriggerSmartContract` → `call.to` =合同(基数58), `call.selector` = 前4个字节 `data`, (中文(简体) ), `call.data` =: `0x` + 数据, `call.method = 'transfer'` 页:1 `a9059cbb`, (中文(简体) ), `nativeValue` =: `call_value`其他系统合同(冻结、表决、代表.) `call.method` =合同类型, `call.to` =接受者或拥有者. `internal_transactions` 与TRX调用值成为本土转移. `fee` =: `ret[0].fee` (倒计时) `net_fee + energy_fee`, (中文(简体) ), `status` 从 `contractRet`, (中文(简体) ), `block` =: `blockNumber`。 。 。 .

**咒语.** 每个名单都按自己的内容阅读 `meta.fingerprint`。一个交易的行共享块时间戳,所以一个页面从两个列表中取下个时间戳的行,通过txID将其合并并按txID顺序发出;当它们不适合时 `limit`,页面结束在时间戳内。 光标是基数64 JSON `{ v: 2, n, s: { tx, trc20 }, t?, g? }`: 每个 API 请求的行 `n` 采取的立场(适用于整个清单,不论 `limit` 之后的几页询问),每个列表中,各页所持未读行的指纹,以及其中被消耗的指纹数量(c`null` 加上——仅部分散发的时间戳——其价值 `t` 及其已发行的交易 `g`。没有丢失或重复,但许多行都共享时间戳;一个指纹的API不会推进(一个网关丢弃参数)结束列表,而不是循环,一个呼叫中一个列表的500多页无法通过 `HistoryUnavailableError` (光标仍然可用)而不是剪去列表; a `v: 1` 拒绝使用早先版本的光标(再次开始列表).

**单笔交易.** `POST /wallet/gettransactionbyid` + 键 `POST /wallet/gettransactioninfobyid` (两项请求):准确 `fee`, (中文(简体) ), `status` 从 `receipt.result`,从信息中阻断/时间,解码为 TRC-20 从 `Transfer` 日志(符号 / 小数未知)。 信息端点是 **没有** 在列表时被调用——仅限TRC-20行的收费保持不变(由对方支付),地址自身交易的收费已经在列表行中.

装入 `test/fixtures/history/` 2026年10月14日从 `api.trongrid.io` (无键,有节奏):测试钱包的 `/transactions` 页面(TRX入/出,TRC-10空投)及其空出 `/trc20` 由于测试钱包没有TRC-20或合同活动 `TCanhfMgr9RsFRoxkJ8YkJD8Faha85a14p` (钱包对应方:USDT) `transfer` 通过 `TriggerSmartContract`)和全节点 `gettransactionbyid` 编号 : `gettransactioninfobyid` 那笔UDT的转帐 目前还没有协议模块确认Tron交易,所以没有识别器交叉检查.

## 常见问题

### @anywalletkit/wallet-tron 是什么？

Any Walet Kit的Tron钱包:BIP-32m/44'/195'/0'/0/i帐号,TRX和TRC-20根据全节点HTTP API进行转帐,没有tronweb\.

### 如何安装 @anywalletkit/wallet-tron？

在项目目录运行 npm install @anywalletkit/wallet-tron，或使用 pnpm add / yarn add / bun add。

### @anywalletkit/wallet-tron 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @anywalletkit/wallet-tron 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @anywalletkit/wallet-tron 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @anywalletkit/wallet-tron 可以商用吗？

@anywalletkit/wallet-tron 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @anywalletkit/wallet-tron 的下载量有多少？

根据 npm 官方下载统计，@anywalletkit/wallet-tron 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,508 次，日均约 84 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @anywalletkit/wallet-tron 还在维护吗？

最新版本 0\.6\.2 发布于 2026/11/03（4 天前）；至今共发布 13 个版本，其中过去 12 个月发布了 13 个；首次发布于 2026/10/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

