MultiversXPythonSDK核心操作Skill mvx_sdk_py_core

这个技能提供了使用 MultiversX Python SDK 进行区块链开发的核心功能,涵盖网络入口点(Entrypoints)、提供者(Network Providers)和交易生命周期管理。它用于简化与 MultiversX 网络的交互,支持开发网、测试网、主网和本地网络,适用于 DApp 开发、链操作和智能合约交互。关键词:MultiversX, SDK, Python, 区块链, 网络交互, DApp 开发, 智能合约, 交易处理, Web3。

链开发 0 次安装 0 次浏览 更新于 3/21/2026

name: mvx_sdk_py_core description: MultiversX Python SDK 的核心 SDK 操作 - 入口点、提供者和网络。

MultiversX SDK-Py 核心操作

这个技能涵盖了 multiversx-sdk v2 库的基本构建块。

入口点

网络特定的客户端,简化常见操作:

入口点 网络 默认 URL
DevnetEntrypoint 开发网 https://devnet-api.multiversx.com
TestnetEntrypoint 测试网 https://testnet-api.multiversx.com
MainnetEntrypoint 主网 https://api.multiversx.com
LocalnetEntrypoint 本地网络 http://localhost:7950
from multiversx_sdk import DevnetEntrypoint

# 默认 API
entrypoint = DevnetEntrypoint()

# 自定义 API
entrypoint = DevnetEntrypoint(url="https://custom-api.com")

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

入口点方法

方法 描述
create_account() 创建新账户实例
create_network_provider() 获取底层网络提供者
recall_account_nonce(address) 从网络获取当前 nonce
send_transaction(tx) 广播单个交易
send_transactions(txs) 广播多个交易
get_transaction(tx_hash) 通过哈希获取交易
await_completed_transaction(tx_hash) 等待交易完成

网络提供者

低级网络访问:

提供者 使用场景
ApiNetworkProvider 标准 API 查询(推荐)
ProxyNetworkProvider 通过网关直接节点交互
# 从入口点
provider = entrypoint.create_network_provider()

# 手动实例化
from multiversx_sdk import ApiNetworkProvider

api = ApiNetworkProvider("https://devnet-api.multiversx.com", client_name="my-app")

提供者方法

方法 描述
get_network_config() 链 ID、燃气设置
get_network_status() 当前纪元、nonce
get_block(block_hash) 获取区块数据
get_account(address) 账户余额、nonce
get_account_storage(address) 合约存储
get_transaction(tx_hash) 交易详情
query_contract(query) VM 查询(只读)

交易生命周期

# 1. 创建账户并同步 nonce
account = Account.new_from_pem("wallet.pem")
account.nonce = entrypoint.recall_account_nonce(account.address)

# 2. 创建交易(通过控制器)
controller = entrypoint.create_transfers_controller()
tx = controller.create_transaction_for_transfer(
    sender=account,
    nonce=account.get_nonce_then_increment(),
    receiver=receiver_address,
    native_amount=1000000000000000000
)

# 3. 发送
tx_hash = entrypoint.send_transaction(tx)

# 4. 等待完成
result = entrypoint.await_completed_transaction(tx_hash)
print(f"状态: {result.status}")

最佳实践

  1. 使用入口点:简化配置
  2. 同步 nonce:在创建任何交易前
  3. 处理异常:包装网络调用
  4. 使用整数:对于金额(EGLD 有 18 位小数)