技能使用指南

mvx_sdk_js_core(MultiversXSDK-JS核心操作技能)Skill 如何快速上手上链交易?

想用 TypeScript 高效开发 MultiversX 链上应用?MultiversXSDK-JS核心操作技能Skill 覆盖四类入口点、ApiNetworkProvider 与 ProxyNetworkProvider、交易生命周期与 5 条最佳实践,让 AI 助手直接产出可信代码。本文含一键安装验证步骤、使用示例、竞品对比与常见问题,帮你少查文档、快速上链。

MultiversXSDK-JS核心操作技能Skillmvx_sdk_js_core
8 个章节 约 19 分钟阅读 AI 智能生成

MultiversXSDK-JS核心操作技能Skill:把 MultiversX 链上开发的核心 SDK 知识装进 AI 助手

  • 一句话定位:这是一份围绕 @multiversx/sdk-core v15 库「入口点 → 网络提供者 → 交易生命周期」的知识型技能,让 AI 助手在写 MultiversX 链上代码时,直接给出符合官方结构的可运行片段,而不是靠猜。
  • 覆盖范围清晰:Devnet / Testnet / Mainnet / Localnet 四类入口点、ApiNetworkProvider 与 ProxyNetworkProvider 两种网络提供者、以及从创建交易到等待完成的完整生命周期。
  • 直接产出代码:技能内容以 TypeScript 示例 + 方法速查表的形式组织,AI 调用时可复用其中的 API 名称、参数结构与最佳实践。
  • 适合谁用:DApp 前端与脚本开发者、链上运维/批量任务工程师、智能合约联调与测试人员、刚开始接触 MultiversX 生态的新人。
  • 关键提醒:涉及安装命令、平台入口、计费方式等具体信息,请以官方说明为准;本文只基于技能详情描述功能与用法。

1. 该技能叫什么?如何一键安装 AI 技能提升开发效率?

基本信息

项目 内容
技能中文名 MultiversXSDK-JS核心操作技能Skill
技能英文名 mvx_sdk_js_core
技能ID 12563
技能主题 MultiversX TypeScript/JavaScript 核心 SDK 操作——入口点、网络提供者和交易

它解决什么问题?

MultiversX 的 @multiversx/sdk-core v15 是一个典型的「API 面广、细节多」的库:光入口点就有四个网络版本,每个入口点又挂着 createAccount()、recallAccountNonce()、sendTransaction()、awaitCompletedTransaction() 等一长串方法;底层网络提供者还分 ApiNetworkProvider 与 ProxyNetworkProvider 两种用法。开发者在实际写代码时,最常卡住的不是「不会写 JS」,而是:方法名记不精确、参数结构记混、随机数(nonce)忘了同步、交易发出去不知道该怎么等结果。

这个技能做的事情,就是把这套基础构建块整理成结构化的知识,交给 AI 助手直接消化。于是你在对话里描述需求(“帮我写一段在开发网上转账并等待上链结果”),AI 就能按技能里的入口点、控制器、交易生命周期来组织代码,而不是自由发挥。

「一键安装」的思路与步骤

需要说明的是,AI 技能的本质是「给助手挂载一份可信知识包」,所以安装过程通常很轻量,不涉及复杂的本地部署。通用流程如下(具体命令、入口名称以官方说明为准):

  1. 确认前提:你使用的 AI 客户端或开发工具支持技能(Skill)机制;若要在本地实际运行生成的代码,还需要准备好 Node.js 环境与对应的 NFT/钱包资源(例如 .pem 钱包文件)。
  2. 找到技能:在技能市场或技能目录中,通过技能英文名 mvx_sdk_js_core 或技能 ID 12563 检索。
  3. 一键安装并启用:点击安装/启用按钮,将技能挂载到当前工作空间或会话中(部分平台支持按项目启用)。
  4. 验证是否生效:开启新会话,直接问一句——“MultiversX 有哪几个入口点?各自的默认 API 地址是什么?” 如果助手能准确列出 DevnetEntrypoint(https://devnet-api.multiversx.com)、TestnetEntrypoint(https://testnet-api.multiversx.com)、MainnetEntrypoint(https://api.multiversx.com)、LocalnetEntrypoint(http://localhost:7950),说明技能知识已经成功加载。
  5. 进一步验证:让它写一段「创建入口点 → 同步 nonce → 构造转账交易 → 发送 → 等待完成」的代码,观察是否用到 createTransfersController()、getNonceThenIncrement()、awaitCompletedTransaction() 等技能中出现过的真实 API。

这个「装一次、长期受益」的模式,正是 AI 技能提升开发效率的核心逻辑:把反复查文档的时间,换成一次性的挂载成本。


2. 该技能的主要功能和特点

  • 四网络入口点开箱即用:DevnetEntrypoint、TestnetEntrypoint、MainnetEntrypoint、LocalnetEntrypoint 分别对应开发网、测试网、主网和本地网,各自带默认 API 地址,省去手写 URL 的麻烦。
  • 入口点支持三种配置方式:默认 API、自定义 API(传入 { url: "https://custom-api.com" })、以及走网关的代理模式(传入 kind: "proxy" 指向 devnet-gateway.multiversx.com 这类网关地址)。
  • 常用操作一键封装:入口点内置 createAccount()、createNetworkProvider()、recallAccountNonce(address)、sendTransaction(tx)、sendTransactions(txs)、getTransaction(txHash)、awaitCompletedTransaction(txHash),覆盖账户、广播、查询、等待四条主线。
  • 两种网络提供者按场景选择:ApiNetworkProvider 用于标准 API 查询(技能明确标注为「推荐」),ProxyNetworkProvider 用于通过网关与节点直接交互;同时支持 clientName、requestsOptions.timeout 等客户端配置。
  • 提供者方法覆盖链上常用查询:getNetworkConfig()、getNetworkStatus()、getBlock()、getAccount()、getAccountStorage()、getTransaction()、awaitTransactionCompletion()、queryContract()(VM 只读查询)。
  • 内置交易生命周期范式:技能给出了「同步 nonce → 用控制器创建交易 → 发送拿哈希 → 等待完成并打印状态」的标准四步流程,避免新手写出「交易发了但不知道成功没有」的代码。
  • 附带 5 条最佳实践:创建交易前必须同步随机数、关键操作用 awaitCompletedTransaction、网络调用要处理错误、长操作设置合理超时、可批量时用 sendTransactions()。

和普通工具比强在哪? 与「搜索引擎 + 官方文档」相比,技能不是让你自己翻页找方法名,而是让 AI 在生成代码时天然遵守这套结构与命名;与「通用大模型裸聊」相比,技能把版本号锁在 v15 的语义上,显著降低「API 名字对但参数结构错」的幻觉风险。


3. 如何使用该技能?

下面按典型开发路径给出分步指南,示例均取自技能内容,可直接参考。

步骤 1:创建入口点,选择目标网络

import { DevnetEntrypoint } from "@multiversx/sdk-core";

// 默认 API
const entrypoint = new DevnetEntrypoint();

// 自定义 API
const entrypoint = new DevnetEntrypoint({ url: "https://custom-api.com" });

// 代理模式(网关)
const entrypoint = new DevnetEntrypoint({
    url: "https://devnet-gateway.multiversx.com",
    kind: "proxy"
});

输入:网络选择与可选的自定义地址;输出:一个可复用的入口点对象,后续所有操作都从它出发。

步骤 2:按需获取网络提供者

const provider = entrypoint.createNetworkProvider();

// 或手动实例化
import { ApiNetworkProvider } from "@multiversx/sdk-core";

const api = new ApiNetworkProvider("https://devnet-api.multiversx.com", {
    clientName: "my-app",
    requestsOptions: { timeout: 10000 }
});

需要查询链 ID、纪元、账户余额或做只读合约查询时,用 getNetworkConfig()、getNetworkStatus()、getAccount()、queryContract() 等方法即可。

步骤 3:同步账户随机数(nonce)

const account = await Account.newFromPem("wallet.pem");
account.nonce = await entrypoint.recallAccountNonce(account.address);

这是技能反复强调的第一步:创建交易前一定先从网络拉取当前 nonce,否则交易容易因 nonce 不匹配被拒。

步骤 4:通过控制器构造交易

const controller = entrypoint.createTransfersController();
const tx = await controller.createTransactionForTransfer(
    account,
    account.getNonceThenIncrement(),
    { receiver, nativeAmount: 1000000000000000000n }
);

步骤 5:广播并等待完成

const txHash = await entrypoint.sendTransaction(tx);
const result = await entrypoint.awaitCompletedTransaction(txHash);
console.log("状态:", result.status);

输出说明:sendTransaction() 返回交易哈希,awaitCompletedTransaction() 返回包含 status 的结果对象,用于判断交易是否真正上链成功。批量场景可改用 sendTransactions(txs) 一次性广播多笔。

步骤 6:把需求直接讲给 AI 助手

你可以这样提问:「用 mvx_sdk_js_core 的写法,在开发网上创建一笔转账交易并等待完成,要求先同步 nonce、带超时配置、异常要有处理。」助手会按技能里的入口点与生命周期组织代码,你再把生成结果贴进项目验证。


4. 同类型竞品对比分析

方案名称 定位 核心功能 安装/使用门槛 适用场景 优势与不足
MultiversXSDK-JS核心操作技能Skill(mvx_sdk_js_core) 面向 AI 助手的 MultiversX SDK 知识技能 入口点、网络提供者、交易生命周期、最佳实践 需支持技能机制的平台,一键挂载;以官方说明为准 让 AI 直接产出符合 v15 语义的链上代码 优势:结构清晰、版本对齐、方法名准确;不足:聚焦核心构建块,不含全部高级模块
官方 SDK 文档与仓库 README 权威一手资料 全部 API 与示例 免费查阅,但需要自己检索与筛选 精确核对参数、查看变更记录 优势:最权威;不足:检索成本高,需要人工拼接成完整流程
通用大模型(未挂载技能) 通用代码生成 能写 JS/TS,但链上 API 细节依赖训练记忆 无门槛 快速起草骨架代码 优势:随时可用;不足:方法名与参数结构易出现幻觉,版本漂移风险高
自建提示词 / 本地代码片段库 团队自维护知识包 自定义规范与模板 需要人工整理与长期维护 有强内部规范的团队 优势:可完全定制;不足:维护成本高,更新滞后于 SDK 升级

从对比可以看出,本技能的差异化位置很明确:它既不像官方文档那样「全但重」,也不像裸模型那样「快但飘」,而是在二者之间提供一个「常用路径已固化、命名与结构可信」的中间层。


5. 该技能的典型应用场景与实际体验情况

场景一:DApp 前端的链上交互开发者 痛点:要在多网络间切换(开发网调试、主网发布),每次改网络都要重配 API 地址和提供者类型。使用方式:让 AI 按技能给出 DevnetEntrypoint / MainnetEntrypoint 的切换写法,以及 ApiNetworkProvider 与代理模式的差异说明。实际体验:网络切换模板化程度高,改一行入口点即可;注意自定义 API 与代理模式(kind: "proxy")不能混用同一套路径。

场景二:链上批量任务脚本(转账、空投类批量操作) 痛点:多笔交易依次发送时容易卡在 nonce 管理与「发出去了但不知道成没成」。使用方式:请 AI 依据技能中的 sendTransactions(txs) 与 awaitCompletedTransaction(txHash) 组合出批量脚本,并在开头执行 recallAccountNonce() 同步。实际体验:生命周期四步非常顺;注意事项是要给长操作设置超时(requestsOptions.timeout),并对网络调用统一加错误处理。

场景三:智能合约联调与只读查询 痛点:想读合约存储或做 VM 只读查询,却记不清方法归属。使用方式:使用 getAccountStorage(address) 与 queryContract(query),先通过 getNetworkConfig() 确认链 ID 与气体设置。实际体验:方法定位速度快,配合 getBlock()、getTransaction() 排查问题很顺手;注意只读查询不产生交易,无需等待上链。

场景四:新人上手 MultiversX 生态 痛点:文档入口多、概念密,容易在「入口点」和「提供者」之间混淆。使用方式:把技能当作问答底座,连续追问四类入口点默认地址、两种提供者区别、交易四步流程。实际体验:上手难度低,概念层次被拉平;建议先跑通开发网一笔转账,再迁移到主网。


6. 该技能能为用户带来的价值

  • 效率价值:把「查文档 → 找方法 → 拼流程」的三段式操作压缩成一次对话,尤其是入口点配置、nonce 同步、交易等待这几个高频环节,几乎可以从记忆中卸载。
  • 门槛价值:对刚接触 MultiversX 的开发者,技能内置的「四步交易生命周期 + 5 条最佳实践」本身就是一条被验证过的上手路径,比在文档里自行摸索更快建立正确心智模型。
  • 质量价值:版本锁定在 @multiversx/sdk-core v15,方法名、参数结构、控制器用法都有据可依,能显著减少「代码看起来对、跑起来报错」的返工。
  • 长期价值:知识包可随 SDK 升级迭代复用,团队内的代码风格与调用习惯也能借助它对齐;一次挂载,长期服务于脚本、DApp、联调、教学等多种场景。

需要提醒的是,该技能提供的是核心构建块层面的知识,涉及费用、网络资源消耗等实际成本,请以 MultiversX 网络与官方文档的具体说明为准。


7. 常见问题 FAQ

Q1:这个技能怎么安装?需要本地部署 SDK 吗? A:不需要本地部署。技能本质是一份挂载给 AI 助手的知识包,在支持技能机制的客户端或平台中,用英文名 mvx_sdk_js_core 或技能 ID 12563 检索后一键启用即可。若要在本地真正运行生成的 TypeScript 代码,则需要准备 Node.js 环境与 @multiversx/sdk-core 依赖。具体入口与命令以官方说明为准。

Q2:安装后怎么确认它真的生效了? A:开一个新会话,问「MultiversX 的四个入口点及默认 API 地址分别是什么」。若回答能准确给出 DevnetEntrypoint、TestnetEntrypoint、MainnetEntrypoint、LocalnetEntrypoint 及其默认 URL,并能在后续追问中写出 recallAccountNonce()、awaitCompletedTransaction() 等真实方法,说明技能知识已加载。

Q3:这个技能收费吗? A:技能内容本身是一份 SDK 使用知识文档,是否收费取决于你所使用平台的计费策略,请以官方说明为准。它不包含任何内置的付费 API 额度或钱包资产。

Q4:它适合谁用?不适合谁? A:适合需要用 TypeScript/JavaScript 与 MultiversX 链交互的开发者,包括 DApp 前端、链上脚本、合约联调与教学场景。如果你要找的是完整的高级模块(例如更细分的合约模块与复杂场景封装),本技能只覆盖核心构建块层面,需要配合官方文档进一步查阅。

Q5:和直接用通用大模型写代码相比,差别在哪? A:通用模型容易出现「方法名像但不精确」的问题;本技能把入口点、提供者、生命周期、最佳实践固化成结构化知识,模型生成时更可能复用真实 API 与正确顺序(尤其是「先同步 nonce 再建交易」这条硬约束),从而减少调试成本。