一键导入
mvx-sdk-py-contracts
Smart contract operations for MultiversX Python SDK.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Smart contract operations for MultiversX Python SDK.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Guidelines for establishing context before an audit.
Perform a comprehensive on-chain security audit of a deployed MultiversX smart contract. Use when reviewing a contract's security posture, permissions, state, and economic safety without source code.
Read on-chain state in MultiversX smart contracts. Use when accessing caller info, account balances, block timestamps, ESDT token metadata, local roles, code metadata, or any data from self.blockchain().
Gas-optimized cache patterns for MultiversX smart contracts using Drop-based write-back caches. Use when building contracts that read/write multiple storage values per transaction, DeFi protocols, or any gas-sensitive contract.
Identify ambiguous requirements and ask targeted clarifying questions for MultiversX development. Use when user requests are vague, missing technical constraints, or have conflicting requirements.
Comprehensive code analysis toolkit for MultiversX smart contracts. Covers differential review (version comparison, upgrade safety), fix verification (validate patches, regression testing), and variant analysis (find similar bugs across codebase). Use when reviewing PRs, verifying security patches, or hunting for bug variants.
| name | mvx-sdk-py-contracts |
| description | Smart contract operations for MultiversX Python SDK. |
This skill covers ABI loading, deployments, calls, and queries.
from multiversx_sdk import Abi
from pathlib import Path
# Load from file
abi = Abi.load("contract.abi.json")
# Create controller with loaded ABI
controller = entrypoint.create_smart_contract_controller(abi=abi)
bytecode = Path("contract.wasm").read_bytes()
tx = controller.create_transaction_for_deploy(
sender=account,
nonce=account.get_nonce_then_increment(),
bytecode=bytecode,
gas_limit=60000000,
arguments=[42] # Typed automatically via ABI
)
tx_hash = entrypoint.send_transaction(tx)
parsed_outcome = controller.await_completed_deploy(tx_hash)
contract_address = parsed_outcome[0].contract_address
# Call endpoint
tx = controller.create_transaction_for_execute(
sender=account,
nonce=account.get_nonce_then_increment(),
contract=contract_address,
function="add",
arguments=[10],
gas_limit=5000000
)
# Call with token transfer (Transfer & Execute)
tx = controller.create_transaction_for_execute(
sender=account,
nonce=account.get_nonce_then_increment(),
contract=contract_address,
function="deposit",
gas_limit=10000000,
native_amount=1000000000000000000
)
Read-only calls to the contract state.
# Using controller (parsed output)
result = controller.query_contract(
contract=contract_address,
function="getSum",
arguments=[]
)
print(result[0]) # Typed output
If ABI is not available, use manual type hinting (less recommended).
from multiversx_sdk import SmartContractTransactionsFactory
factory = entrypoint.create_smart_contract_transactions_factory()
tx = factory.create_transaction_for_execute(
sender=account.address,
contract=contract_address,
function="add",
gas_limit=5000000,
arguments=[42] # Basic types inferred
)
new_bytecode = Path("contract_v2.wasm").read_bytes()
tx = controller.create_transaction_for_upgrade(
sender=account,
nonce=account.get_nonce_then_increment(),
contract=contract_address,
bytecode=new_bytecode,
gas_limit=60000000,
arguments=[]
)