RPC Reference
Vexidus exposes 90+ JSON-RPC endpoints organized into two namespaces: vex_* (native) and eth_* (EVM compatibility).
tip
All examples use the public testnet endpoint https://testnet.vexidus.io. Replace with your local node address (e.g. http://localhost:9933) if running your own validator.
All endpoints accept standard JSON-RPC 2.0 format:
curl -s https://testnet.vexidus.io \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"METHOD_NAME","params":[...],"id":1}'
Native (vex_*)
Token and Balance
| Method | Description |
|---|---|
vex_getBalance | Get token balance for an address. Params: [address, token_symbol] |
vex_transfer | Transfer tokens (convenience, unsigned). Params: [from, to, token, amount] |
vex_createToken | Create a VSC-7 fungible token. Params: [name, symbol, decimals, supply, owner] |
vex_getTokenInfo | Get token metadata by symbol or mint address. Params: [symbol_or_mint] |
vex_listTokens | List all registered tokens. Params: [limit] |
vex_updateTokenMetadata | Update mutable token metadata (creator only). Params: [mint, sender, metadata_uri?, image?, description?, external_url?, twitter?, discord?, telegram?, github?] |
vex_lockTokenMetadata | Permanently lock token metadata (one-way). Params: [mint, sender] |
vex_getTokenReputation | Get token reputation score (VSC-REP). Params: [mint] |
DEX (VexiDEX)
| Method | Description |
|---|---|
vex_createPool | Create a new liquidity pool. Params: [token_a, token_b, amount_a, amount_b, lp_lock_duration, sender] |
vex_addLiquidity | Add liquidity to existing pool. Params: [token_a, token_b, amount_a, amount_b, min_lp_tokens, sender] |
vex_removeLiquidity | Remove liquidity and redeem LP tokens. Params: [token_a, token_b, lp_amount, min_amount_a, min_amount_b, sender] |
vex_swap | Swap tokens through a pool. Params: [from_token, to_token, amount_in, min_amount_out, sender] |
vex_getPool | Get pool info by token pair. Params: [token_a, token_b] |
vex_listPools | List all pools. Params: [limit] |
vex_quoteSwap | Get swap quote (read-only). Params: [from_token, to_token, amount_in] |
NFT (VSC-21)
| Method | Description |
|---|---|
vex_createNftCollection | Create NFT collection. Params: [name, symbol, base_uri, max_supply, royalty_bps, owner, description?, icon_uri?, banner_uri?, external_url?] |
vex_mintNft | Mint an NFT. Params: [collection, token_id, metadata_uri, recipient, sender] |
vex_transferNft | Transfer an NFT. Params: [collection, token_id, to, owner] |
vex_burnNft | Burn an NFT (owner only). Params: [collection, token_id, owner] |
vex_getNft | Query NFT by collection + token ID. Params: [collection, token_id] |
vex_listNftsByOwner | List NFTs owned by address. Params: [owner, collection?, limit] |
vex_getNftCollection | Collection metadata and stats. Params: [collection] |
Multi-Token (VSC-55)
| Method | Description |
|---|---|
vex_createMultiTokenCollection | Create multi-token collection. Params: [name, symbol, base_uri, royalty_bps, owner, description?, icon_uri?, banner_uri?, external_url?] |
vex_defineTokenType | Define a token type in collection. Params: [collection, type_id, name, metadata_uri, max_supply, is_fungible, sender] |
vex_mintMultiToken | Mint tokens of a type. Params: [collection, type_id, recipient, amount, sender] |
vex_batchMintMultiToken | Batch mint multiple types. Params: [collection, mints_array, sender] |
vex_transferMultiToken | Transfer tokens of a type. Params: [collection, type_id, to, amount, from] |
vex_batchTransferMultiToken | Batch transfer multiple types. Params: [collection, transfers_array, sender] |
vex_burnMultiToken | Burn tokens. Params: [collection, type_id, amount, owner] |
vex_getMultiTokenBalance | Query balance. Params: [collection, type_id, owner] |
vex_getTokenType | Token type definition. Params: [collection, type_id] |
vex_getMultiTokenCollection | Collection metadata. Params: [collection] |
vex_listTokenTypes | List types in collection. Params: [collection, limit] |
Presale (VSC-LAUNCH)
| Method | Description |
|---|---|
vex_createPresale | Create a presale with anti-rug protection. |
vex_contributePresale | Contribute to a presale. |
vex_finalizePresale | Finalize presale and auto-create LP. |
vex_refundPresale | Refund if presale fails. |
vex_getPresale | Get presale details. |
vex_listPresales | List all presales. |
vex_getPresaleContributions | List contributions for a presale. |
vex_getPresaleStatus | Get presale status summary. |
Bridge
| Method | Description |
|---|---|
vex_bridgeToken | Deposit tokens from external chain. Params: [chain, tx_hash, symbol, amount, recipient, proof] |
vex_bridgeWithdraw | Withdraw tokens to external chain. Params: [token_mint, amount, chain, destination, sender] |
vex_getBridgeStatus | Query bridge operation status. Params: [chain, tx_hash] |
vex_getBridgeHistory | List bridge operations for address. Params: [address, limit] |
vex_getBridgeFees | Get fee config for a chain. Params: [chain?] (null for all) |
vex_autobridge | Universal receive -- auto-detect and process. |
vex_getPendingReceives | List pending auto-detected receives. |
IntentVM
| Method | Description |
|---|---|
vex_submitIntent | Submit intent (NL or JSON). Params: [intent_string, sender_address] |
vex_getExecutionPlan | Preview execution steps + gas estimate. Params: [intent_string] |
vex_getIntentStatus | Query intent result by hash. Params: [bundle_hash] |
Staking
| Method | Description |
|---|---|
vex_stake | Stake VXS as validator. Params: [staker_address, amount, validator_pubkey] |
vex_unstake | Begin unbonding. Params: [address, amount] |
vex_getValidator | Get validator details. Params: [address] |
vex_listValidators | List all validators. Params: [limit] |
vex_stakingInfo | Network staking summary. Params: [] |
vex_setCommission | Set commission rate (basis points). Params: [address, commission_bps] |
vex_unjail | Unjail validator after cooldown. Params: [address] |
vex_setValidatorMetadata | Set validator profile. Params: [address, name, description, website, avatar] |
vex_getDelegations | Get delegations for address (includes auto_compound status). Params: [address] |
vex_setAutoCompound | Toggle auto-compound for a delegation. Params: [validator, enable, sender] |
vex_setPoolConfig | Configure staking pool settings (validator only). Params: [pool_enabled, pool_name, min_delegation, auto_compound_default, sender] |
Explorer
| Method | Description |
|---|---|
vex_getBlockByHeight | Get block by height (includes tx stats). Params: [height] |
vex_getRecentBlocks | Get recent blocks. Params: [limit] |
vex_getRecentTransactions | Get recent transactions. Params: [limit] |
vex_getNetworkStats | Network statistics. Params: [] |
vex_getBlockTransactions | Transactions in a specific block. Params: [height] |
vex_getAddressHistory | Transaction history for address. Params: [address, limit] |
vex_getTokenHolders | Token holder list. Params: [token_mint, limit] |
vex_getTokenTransfers | Token transfer history. Params: [token_mint, limit] |
vex_search | Search by hash, address, or block. Params: [query] |
vex_getTransactionReceipt | Transaction receipt by hash. Params: [tx_hash] |
vex_getAddressTokens | List tokens held by address. Params: [address] |
VNS (Vexidus Name Service)
| Method | Description |
|---|---|
vex_resolveName | Resolve .vex name to address. Params: [name] |
vex_registerName | Register a .vex name. Params: [name, sender] |
vex_reverseResolve | Reverse lookup: address to name. Params: [address] |
vex_getNameInfo | Full name details. Params: [name] |
Upgrade Governance (VexVisor)
| Method | Description |
|---|---|
vex_scheduleUpgrade | Schedule a network upgrade. |
vex_cancelUpgrade | Cancel a scheduled upgrade. |
vex_voteUpgrade | Vote on a scheduled upgrade. |
vex_getUpgradePlan | View the active upgrade plan. |
Protocol Governance (VSC-88)
| Method | Description |
|---|---|
vex_createProposal | Create a governance proposal. Params: [from, proposal_type, title, description, parameter_key?, parameter_value?, treasury_recipient?, treasury_amount?, safety_chain?, safety_contract?, safety_level?, safety_collection?] |
vex_voteProposal | Vote on an active proposal. Params: [from, proposal_id, approve] |
vex_executeProposal | Execute an approved proposal. Params: [from, proposal_id] |
vex_cancelProposal | Cancel a proposal (proposer only). Params: [from, proposal_id] |
vex_getProposal | Get proposal details by ID. Params: [proposal_id] |
vex_listProposals | List proposals (optional status filter). Params: [status?] |
Multi-Sig (VSC-88)
| Method | Description |
|---|---|
vex_createMultiSig | Create an M-of-N multi-sig account. Params: [from, signers_array, threshold, label] |
vex_proposeMultiSigTx | Propose a transaction from a multi-sig. Params: [from, multisig_address, operations_json, description] |
vex_approveMultiSigTx | Approve a pending multi-sig transaction. Params: [from, multisig_address, tx_id] |
vex_revokeMultiSigApproval | Revoke approval on a pending tx. Params: [from, multisig_address, tx_id] |
vex_getMultiSig | Get multi-sig account details. Params: [address] |
vex_listMultiSigTxs | List transactions for a multi-sig. Params: [address] |
Safety (VSC-SAFE)
| Method | Description |
|---|---|
vex_getContractSafety | Get safety record for a bridge contract. Params: [chain, contract_address] |
vex_listContractSafety | List contract safety records (optional chain filter). Params: [chain?, limit] |
Utility
| Method | Description |
|---|---|
vex_submitBundle | Submit a signed transaction bundle (Borsh hex). Params: [borsh_hex] |
vex_generateKeypair | Generate Ed25519 keypair (testnet only). Params: [] |
EVM Compatibility (eth_*)
These endpoints provide MetaMask and EVM tooling compatibility. They translate EVM-format requests into native Vexidus state queries.
| Method | Description |
|---|---|
eth_call | Simulate contract call (ERC-20/721/1155 function selectors supported) |
eth_sendRawTransaction | Submit an ECDSA-signed transaction |
eth_getBalance | Get VXS balance (scaled to 18 decimals for MetaMask) |
eth_getTransactionCount | Get account nonce |
eth_chainId | Returns chain ID (0x18b070 testnet, 0x18b071 mainnet) |
eth_blockNumber | Current block height (hex) |
eth_getBlockByNumber | Block data by height |
eth_getBlockByHash | Block data by hash |
eth_getTransactionByHash | Transaction data by hash |
eth_getTransactionReceipt | Transaction receipt |
eth_getLogs | Event logs (ERC-20 Transfer, ERC-721 Transfer, ERC-1155 events) |
eth_getCode | Returns bytecode stub for VSC tokens (appears as contract to wallets) |
eth_estimateGas | Gas estimation |
net_version | Network version |
web3_clientVersion | Client version string |
Notes on EVM Compatibility
- Decimal scaling:
eth_getBalancereturns VXS scaled to 18 decimals (native is 9). MetaMask displays correct human-readable amounts. - Address format:
eth_*methods use 20-byte0xaddresses. The adapter right-aligns to 32 bytes internally. - ERC-20 simulation:
eth_callwith standard function selectors (balanceOf,name,symbol,decimals,totalSupply) works on VSC-7 tokens. - No bytecode execution: Vexidus does NOT run EVM opcodes. The
eth_*layer translates wallet RPC formats into native state queries.