全面掌握 XPR Network 区块链开发技术:智能合约、CLI、Web SDK、DeFi、NFT 与基础设施
XPR 网络开发者技能是一项面向实际任务的技能,主要用于这个技能为开发 XPR 网络提供了全面的知识, 是一个快速的无气的块链, 并有WebAuthn 钱包支持. 2.;IMPORTANT DISCLAIMER: AI-Genera。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
本技能提供在 XPR Network 上进行开发所需的全面知识。XPR Network 是一条快速、零 Gas 费的区块链,原生支持 WebAuthn 钱包。
重要免责声明:AI 生成的智能合约代码
智能合约处理真实资产,且一旦部署即不可更改。由 AI(包括本技能生成)生成的代码,在部署至主网前,必须由经验丰富的开发者进行人工审查。
- 务必在测试网充分测试,再执行任何主网部署
- 代码须经熟悉 XPR Network / EOSIO 智能合约的人员审核
- 关键合约需接受安全审计 —— 对于管理高价值资产的合约,建议委托专业安全团队进行审计
- 务必完全理解所部署的代码 —— 切勿部署您尚未彻底掌握的代码
Claude 可加速开发进程并辅助设计模式,但无法替代规范的代码审查、测试与安全审计流程。
XPR Network 是一条基于 EOS 的区块链,专为支付与身份场景优化:
| 特性 | 说明 |
|---|---|
| 速度 | 0.5 秒出块时间,吞吐量超 4000 TPS |
| 费用 | 终端用户零 Gas 费 |
| 账户 | 人类可读名称(1–12 个字符,仅限 a–z 和 1–5) |
| 钱包 | 支持 WebAuthn(面容 ID、指纹、安全密钥) |
| 合约 | 使用 AssemblyScript/TypeScript 编写,配合 @proton/ts-contracts |
| 存储 | 链上表结构,RAM 定价模型 |
该区块链于 2024 年完成品牌升级,由 Proton 正式更名为 XPR Network。您可能在以下位置见到遗留的 “Proton” 名称:
@proton/cli、@proton/web-sdk、proton-tsc)XPRNetwork,原为 ProtonProtocol)explorer.xprnetwork.org,原为 protonscan.io 和 proton.bloks.io)代币符号仍为 XPR,所有功能保持不变。
| 网络 | 链 ID |
|---|---|
| 主网 | 384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0 |
| 测试网 | 71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd |
请根据当前任务按需加载专项模块:
| 模块 | 适用场景 | 核心主题 |
|---|---|---|
smart-contracts.md |
构建智能合约 | 表结构、操作(actions)、权限控制(auth)、构建与部署 |
cli-reference.md |
使用 CLI 工具 | 网络配置、密钥管理、合约部署、链上查询、代币转账 |
web-sdk.md |
构建 dApp | 钱包连接、交易签名、会话管理、代币转账 |
backend-patterns.md |
服务端开发 | proton CLI 密钥链签名(v0.3.0+)、机器人(bots)、密钥隔离 |
rpc-queries.md |
读取链上数据 | RPC 接口、Hyperion API、Light API、分页查询、代币余额 |
testing-debugging.md |
合约测试 | 单元测试、测试网验证、调试技巧、日志分析 |
accounts-permissions.md |
账户管理 | 创建账户、权限体系、多重签名(multisig) |
staking-governance.md |
质押与投票 | XPR 质押、BP(区块生产者)、DPoS 共识、资源模型 |
| 模块 | 适用场景 | 核心主题 |
|---|---|---|
token-creation.md |
创建代币 | 同质化代币(Fungible Tokens)、发行机制、归属(vesting)规则 |
webauth-identity.md |
用户身份管理 | WebAuth 钱包、KYC 流程、用户档案(profiles)、信任模型 |
nfts-atomicassets.md |
NFT 开发 | 收藏集(collections)、Schema 定义、铸造(minting)、NFT 市场集成 |
| 模块 | 适用场景 | 核心主题 |
|---|---|---|
metalx-dex.md |
DEX 集成 | MetalX DEX API 参考、订单格式、错误码说明 |
defi-trading.md |
交易机器人 / DeFi 应用 | 交易机器人设计模式、流动性池(swap pools)、DeFi 策略 |
simpledex.md |
代币发行与 AMM | SimpleDEX 交换逻辑、绑定曲线(bonding curves)、代币创建、项目毕业(graduation)机制 |
loan-protocol.md |
借贷协议 | LOAN 协议、供应(supply)、借贷(borrow)、清算(liquidations) |
oracles-randomness.md |
价格预言机与随机数 | Oracle 价格数据、可验证随机数(verifiable random numbers) |
| 模块 | 适用场景 | 核心主题 |
|---|---|---|
real-time-events.md |
实时更新 | Hyperion 流式推送、WebSocket、通知系统 |
payment-patterns.md |
电商 / 支付场景 | 支付链接、账单开具、POS 终端、订阅服务 |
| 模块 | 适用场景 | 核心主题 |
|---|---|---|
node-operation.md |
运行节点 | API 节点、区块生产者(Block Producers)、验证节点(validators) |
| 模块 | 适用场景 | 核心主题 |
|---|---|---|
safety-guidelines.md |
修改合约前务必阅读 | 表结构规则、部署安全实践、紧急恢复流程 |
troubleshooting.md |
调试错误 | 常见错误类型、解决方案、诊断方法 |
examples.md |
学习开发模式 | PriceBattle、ProtonWall、ProtonRating 示例项目 |
resources.md |
查找接入端点 | RPC URL 列表、官方文档、区块浏览器、社区资源 |
请先阅读:safety-guidelines.md
# 安装 CLI npm i -g @proton/cli # 设置网络 proton chain:set proton # 主网 proton chain:set proton-test # 测试网 # 查询账户信息 proton account myaccount -t # 同时显示代币余额 # 查询链上表 proton table CONTRACT TABLE # 执行操作(action) proton action CONTRACT ACTION 'JSON_DATA' AUTHORIZATION # 部署合约 proton contract:set ACCOUNT ./assembly/target
import { JsonRpc } from '@proton/js';
const rpc = new JsonRpc('https://proton.eosusa.io');
const { rows } = await rpc.get_table_rows({
code: 'CONTRACT',
scope: 'CONTRACT',
table: 'TABLE',
limit: 100
});
import { Contract, Table, TableStore, Name, requireAuth } from 'proton-tsc';
@table("mydata")
class MyData extends Table {
constructor(
public id: u64 = 0,
public owner: Name = new Name(),
public value: string = ""
) { super(); }
@primary
get primary(): u64 { return this.id; }
}
@contract
class MyContract extends Contract {
dataTable: TableStore = new TableStore(this.receiver);
@action("store")
store(owner: Name, value: string): void {
requireAuth(owner);
const row = new MyData(this.dataTable.availablePrimaryKey, owner, value);
this.dataTable.store(row, this.receiver);
}
}
import '@proton/link'; // 移动端钱包支持必需
import ProtonWebSDK from '@proton/web-sdk';
const { link, session } = await ProtonWebSDK({
linkOptions: {
chainId: '384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0',
endpoints: ['https://proton.eosusa.io']
},
selectorOptions: { appName: 'My App' }
});
// session.auth 包含 { actor, permission }
// 使用 session.transact() 发起交易
| 包名 | 用途 | 安装命令 |
|---|---|---|
@proton/cli |
命令行工具 | npm i -g @proton/cli |
proton-tsc |
智能合约开发 | npm i proton-tsc |
@proton/web-sdk |
前端钱包集成 | npm i @proton/web-sdk |
@proton/link |
移动端钱包通信层(与 web-sdk 配合使用) | npm i @proton/link |
@proton/js |
RPC 查询 | npm i @proton/js |
"") —— 任何非空 memo(如 "deposit")将导致资金永久丢失且不可恢复。详见 metalx-dex.md。333555)在调用 get_table_rows 时将引发静默数据丢失 —— 详见 rpc-queries.md 中的规避方案。相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习