Skip to main content

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

MethodDescription
vex_getBalanceGet token balance for an address. Params: [address, token_symbol]
vex_transferTransfer tokens (convenience, unsigned). Params: [from, to, token, amount]
vex_createTokenCreate a VSC-7 fungible token. Params: [name, symbol, decimals, supply, owner]
vex_getTokenInfoGet token metadata by symbol or mint address. Params: [symbol_or_mint]
vex_listTokensList all registered tokens. Params: [limit]
vex_updateTokenMetadataUpdate mutable token metadata (creator only). Params: [mint, sender, metadata_uri?, image?, description?, external_url?, twitter?, discord?, telegram?, github?]
vex_lockTokenMetadataPermanently lock token metadata (one-way). Params: [mint, sender]
vex_getTokenReputationGet token reputation score (VSC-REP). Params: [mint]

DEX (VexiDEX)

MethodDescription
vex_createPoolCreate a new liquidity pool. Params: [token_a, token_b, amount_a, amount_b, lp_lock_duration, sender]
vex_addLiquidityAdd liquidity to existing pool. Params: [token_a, token_b, amount_a, amount_b, min_lp_tokens, sender]
vex_removeLiquidityRemove liquidity and redeem LP tokens. Params: [token_a, token_b, lp_amount, min_amount_a, min_amount_b, sender]
vex_swapSwap tokens through a pool. Params: [from_token, to_token, amount_in, min_amount_out, sender]
vex_getPoolGet pool info by token pair. Params: [token_a, token_b]
vex_listPoolsList all pools. Params: [limit]
vex_quoteSwapGet swap quote (read-only). Params: [from_token, to_token, amount_in]

NFT (VSC-21)

MethodDescription
vex_createNftCollectionCreate NFT collection. Params: [name, symbol, base_uri, max_supply, royalty_bps, owner, description?, icon_uri?, banner_uri?, external_url?]
vex_mintNftMint an NFT. Params: [collection, token_id, metadata_uri, recipient, sender]
vex_transferNftTransfer an NFT. Params: [collection, token_id, to, owner]
vex_burnNftBurn an NFT (owner only). Params: [collection, token_id, owner]
vex_getNftQuery NFT by collection + token ID. Params: [collection, token_id]
vex_listNftsByOwnerList NFTs owned by address. Params: [owner, collection?, limit]
vex_getNftCollectionCollection metadata and stats. Params: [collection]

Multi-Token (VSC-55)

MethodDescription
vex_createMultiTokenCollectionCreate multi-token collection. Params: [name, symbol, base_uri, royalty_bps, owner, description?, icon_uri?, banner_uri?, external_url?]
vex_defineTokenTypeDefine a token type in collection. Params: [collection, type_id, name, metadata_uri, max_supply, is_fungible, sender]
vex_mintMultiTokenMint tokens of a type. Params: [collection, type_id, recipient, amount, sender]
vex_batchMintMultiTokenBatch mint multiple types. Params: [collection, mints_array, sender]
vex_transferMultiTokenTransfer tokens of a type. Params: [collection, type_id, to, amount, from]
vex_batchTransferMultiTokenBatch transfer multiple types. Params: [collection, transfers_array, sender]
vex_burnMultiTokenBurn tokens. Params: [collection, type_id, amount, owner]
vex_getMultiTokenBalanceQuery balance. Params: [collection, type_id, owner]
vex_getTokenTypeToken type definition. Params: [collection, type_id]
vex_getMultiTokenCollectionCollection metadata. Params: [collection]
vex_listTokenTypesList types in collection. Params: [collection, limit]

Presale (VSC-LAUNCH)

MethodDescription
vex_createPresaleCreate a presale with anti-rug protection.
vex_contributePresaleContribute to a presale.
vex_finalizePresaleFinalize presale and auto-create LP.
vex_refundPresaleRefund if presale fails.
vex_getPresaleGet presale details.
vex_listPresalesList all presales.
vex_getPresaleContributionsList contributions for a presale.
vex_getPresaleStatusGet presale status summary.

Bridge

MethodDescription
vex_bridgeTokenDeposit tokens from external chain. Params: [chain, tx_hash, symbol, amount, recipient, proof]
vex_bridgeWithdrawWithdraw tokens to external chain. Params: [token_mint, amount, chain, destination, sender]
vex_getBridgeStatusQuery bridge operation status. Params: [chain, tx_hash]
vex_getBridgeHistoryList bridge operations for address. Params: [address, limit]
vex_getBridgeFeesGet fee config for a chain. Params: [chain?] (null for all)
vex_autobridgeUniversal receive -- auto-detect and process.
vex_getPendingReceivesList pending auto-detected receives.

IntentVM

MethodDescription
vex_submitIntentSubmit intent (NL or JSON). Params: [intent_string, sender_address]
vex_getExecutionPlanPreview execution steps + gas estimate. Params: [intent_string]
vex_getIntentStatusQuery intent result by hash. Params: [bundle_hash]

Staking

MethodDescription
vex_stakeStake VXS as validator. Params: [staker_address, amount, validator_pubkey]
vex_unstakeBegin unbonding. Params: [address, amount]
vex_getValidatorGet validator details. Params: [address]
vex_listValidatorsList all validators. Params: [limit]
vex_stakingInfoNetwork staking summary. Params: []
vex_setCommissionSet commission rate (basis points). Params: [address, commission_bps]
vex_unjailUnjail validator after cooldown. Params: [address]
vex_setValidatorMetadataSet validator profile. Params: [address, name, description, website, avatar]
vex_getDelegationsGet delegations for address (includes auto_compound status). Params: [address]
vex_setAutoCompoundToggle auto-compound for a delegation. Params: [validator, enable, sender]
vex_setPoolConfigConfigure staking pool settings (validator only). Params: [pool_enabled, pool_name, min_delegation, auto_compound_default, sender]

Explorer

MethodDescription
vex_getBlockByHeightGet block by height (includes tx stats). Params: [height]
vex_getRecentBlocksGet recent blocks. Params: [limit]
vex_getRecentTransactionsGet recent transactions. Params: [limit]
vex_getNetworkStatsNetwork statistics. Params: []
vex_getBlockTransactionsTransactions in a specific block. Params: [height]
vex_getAddressHistoryTransaction history for address. Params: [address, limit]
vex_getTokenHoldersToken holder list. Params: [token_mint, limit]
vex_getTokenTransfersToken transfer history. Params: [token_mint, limit]
vex_searchSearch by hash, address, or block. Params: [query]
vex_getTransactionReceiptTransaction receipt by hash. Params: [tx_hash]
vex_getAddressTokensList tokens held by address. Params: [address]

VNS (Vexidus Name Service)

MethodDescription
vex_resolveNameResolve .vex name to address. Params: [name]
vex_registerNameRegister a .vex name. Params: [name, sender]
vex_reverseResolveReverse lookup: address to name. Params: [address]
vex_getNameInfoFull name details. Params: [name]

Upgrade Governance (VexVisor)

MethodDescription
vex_scheduleUpgradeSchedule a network upgrade.
vex_cancelUpgradeCancel a scheduled upgrade.
vex_voteUpgradeVote on a scheduled upgrade.
vex_getUpgradePlanView the active upgrade plan.

Protocol Governance (VSC-88)

MethodDescription
vex_createProposalCreate 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_voteProposalVote on an active proposal. Params: [from, proposal_id, approve]
vex_executeProposalExecute an approved proposal. Params: [from, proposal_id]
vex_cancelProposalCancel a proposal (proposer only). Params: [from, proposal_id]
vex_getProposalGet proposal details by ID. Params: [proposal_id]
vex_listProposalsList proposals (optional status filter). Params: [status?]

Multi-Sig (VSC-88)

MethodDescription
vex_createMultiSigCreate an M-of-N multi-sig account. Params: [from, signers_array, threshold, label]
vex_proposeMultiSigTxPropose a transaction from a multi-sig. Params: [from, multisig_address, operations_json, description]
vex_approveMultiSigTxApprove a pending multi-sig transaction. Params: [from, multisig_address, tx_id]
vex_revokeMultiSigApprovalRevoke approval on a pending tx. Params: [from, multisig_address, tx_id]
vex_getMultiSigGet multi-sig account details. Params: [address]
vex_listMultiSigTxsList transactions for a multi-sig. Params: [address]

Safety (VSC-SAFE)

MethodDescription
vex_getContractSafetyGet safety record for a bridge contract. Params: [chain, contract_address]
vex_listContractSafetyList contract safety records (optional chain filter). Params: [chain?, limit]

Utility

MethodDescription
vex_submitBundleSubmit a signed transaction bundle (Borsh hex). Params: [borsh_hex]
vex_generateKeypairGenerate 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.

MethodDescription
eth_callSimulate contract call (ERC-20/721/1155 function selectors supported)
eth_sendRawTransactionSubmit an ECDSA-signed transaction
eth_getBalanceGet VXS balance (scaled to 18 decimals for MetaMask)
eth_getTransactionCountGet account nonce
eth_chainIdReturns chain ID (0x18b070 testnet, 0x18b071 mainnet)
eth_blockNumberCurrent block height (hex)
eth_getBlockByNumberBlock data by height
eth_getBlockByHashBlock data by hash
eth_getTransactionByHashTransaction data by hash
eth_getTransactionReceiptTransaction receipt
eth_getLogsEvent logs (ERC-20 Transfer, ERC-721 Transfer, ERC-1155 events)
eth_getCodeReturns bytecode stub for VSC tokens (appears as contract to wallets)
eth_estimateGasGas estimation
net_versionNetwork version
web3_clientVersionClient version string

Notes on EVM Compatibility

  • Decimal scaling: eth_getBalance returns VXS scaled to 18 decimals (native is 9). MetaMask displays correct human-readable amounts.
  • Address format: eth_* methods use 20-byte 0x addresses. The adapter right-aligns to 32 bytes internally.
  • ERC-20 simulation: eth_call with 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.