Overview
Each Vite node provides a JSON-RPC API that allows applications to connect to the blockchain.
Developers can interact with on-chain data and send various types of transactions to the network by utilizing the endpoints provided by the API.
The API follows the JSON-RPC standard, a stateless, lightweight, remote procedure call (RPC) protocol commonly used when interacting with blockchains.
Protocol
JSON-RPC 2.0 |
HTTP |
Publish–Subscribe |
WebSocket |
✓ |
✓ |
✓ |
✓ |
Protocol |
Default Port |
HTTP |
48132 |
WebSocket |
41420 |
Tip
On Vite, a transaction is equivalent to an account block. When we mention a transaction, it also refers to an account block, and vice versa.
Type Conversion
- Bytes (
byte[]
) are converted to a base64 string.
hash
is a 32-byte hex string.
hex
and base64
are strings in hex or base64 format.
- For numeric types such as
uint64
, float
, and bigint
, when they are suffixed with the string
type, it means they should be passed as strings.
address
and tokenId
are passed in as strings.
Common Models
AccountInfo
Name |
Type |
Description |
address |
address |
Account address |
blockCount |
uint64 string |
The total number of transactions |
balanceInfoMap |
mapBalanceInfo> |
Account balance |
BalanceInfo
Name |
Type |
Description |
tokenInfo |
TokenInfo |
Token information |
balance |
bigint string |
Token balance |
transactionCount |
uint64 string |
The total number of transactions for this token |
TokenInfo
Name |
Type |
Description |
tokenName |
string |
Token name |
tokenSymbol |
string |
Token symbol |
totalSupply |
bigint string |
Token total supply |
decimals |
uint8 |
Decimal places |
owner |
address |
Token owner |
tokenId |
tokenId |
Token ID |
isReIssuable |
bool |
true means the token can be re-issued |
maxSupply |
bigint string |
The maximum supply of the token. 0 for non-reissuable tokens |
isOwnerBurnOnly |
bool |
true means only the token owner can burn the tokens. Deprecated |
index |
uint16 |
A number between 0-999 to distinguish tokens with the same symbol |
AccountBlock
Name |
Type |
Description |
blockType |
byte |
Block type. 1 - request (create contract), 2 - request (send transaction), 3 - request (mint token), 4 - response (receive transaction), 5 - response (execute contract failed), 6 - request (refund), 7 - response (genesis). |
height |
uint64 string |
Account block height |
hash |
hash |
32-byte block hash |
previousHash |
hash |
The hash of the previous account block. For the first transaction in an account, the value is a string of 64 zeros |
address |
address |
Account address |
publicKey |
base64 |
Producer's public key |
producer |
address |
Block producer address. For user accounts, the producer is the account address itself; for contract accounts, the address is the delegate node of the consensus group |
fromAddress |
address |
The address of the account the transaction is sent from |
toAddress |
address |
The address of the account the transaction is sent to |
sendBlockHash |
hash |
The hash of the corresponding request transaction. For request transactions, the value is a string of 64 zeros |
tokenId |
tokenId |
Token ID |
amount |
bigint string |
Transfer amount |
tokenInfo |
TokenInfo |
Transferred token information |
fee |
bigint string |
Transaction fee |
data |
base64 |
Additional block data |
difficulty |
bigint string |
PoW difficulty |
nonce |
base64 |
PoW nonce |
signature |
base64 |
Block signature |
quotaByStake |
uint64 string |
Quota consumed by the transaction, excluding quota obtained through PoW |
totalQuota |
uint64 string |
Total quota consumed by the transaction |
vmLogHash |
hash |
The hash of the event log generated in the smart contract response |
triggeredSendBlockList |
Array<AccountBlock> |
A list of request transactions sent within this block. RS blocks only. |
confirmations |
uint64 string |
Confirmation number |
firstSnapshotHash |
hash |
The hash of the snapshot block that snapshots the transaction |
timestamp |
int64 |
The timestamp (in seconds) when the transaction is snapshotted |
receiveBlockHeight |
uint64 string |
The height of the corresponding response transaction. Request block only |
receiveBlockHash |
hash |
The hash of the corresponding response transaction. Request block only |
SnapshotBlock
Name |
Type |
Description |
producer |
address |
Block producer address |
hash |
hash |
Snapshot block hash |
previousHash |
hash |
The hash of the previous snapshot block |
height |
uint64 |
Snapshot block height |
publicKey |
base64 |
Producer's public key |
signature |
base64 |
Block signature |
timestamp |
int64 |
The timestamp (in seconds) when the block is produced |
seed |
uint64 |
Random seed generated by the same producer in the previous round |
nextSeedHash |
hash |
Hash of the random seed generated in the current round |
snapshotData |
SnapshotContent |
Content of the snapshot |
version |
uint32 |
Snapshot version |
VmLog
Name |
Type |
Description |
topics |
Array\<hash> |
Event topics |
data |
base64 |
Event log data |
Logs
Name |
Type |
Description |
vmlog |
VmLog |
Event log |
accountBlockHash |
hash |
The hash of the account block that contains the log |
accountBlockHeight |
uint64 string |
The height of the account block that contains the log |
address |
address |
Contract address |
Common RPC Errors
Description |
Code |
Example |
Failed to parse JSON string |
-32700 |
{"code":-32700,"message":"missing request id"} |
Invalid JSON request |
-32600 |
{"code":-32600,"message":"Unable to parse subscription request"} |
Method not found. Please check if the corresponding namespace has been added in PublicModules |
-32601 |
{"code":-32601,"message":"The method tx_sendRawTx does not exist/is not available"} |
Parameter type error |
-32602 |
{"code":-32602,"message":"missing value for required argument"} |
Service stopped |
-32000 |
{"code":-32000,"message":"server is shutting down"} |
Service temporarily unavailable. Please try again later |
-32001 |
{"code":-32001,"message":"server execute panic"} |
Callback error |
-32002 |
{"code":-32002,"message":"notifications not supported"} |
Common Errors
Description |
Code |
Example |
Wrong password |
-34001 |
{"code":-34001,"message":"error decrypting key"} |
Insufficient balance |
-35001 |
{"code":-35001,"message":"insufficient balance for transfer"} |
Insufficient quota |
-35002 |
{"code":-35002,"message":"out of quota"} |
Invalid parameter |
-35004 |
{"code":-35004,"message":"invalid method param"} |
Too many PoW requests |
-35005 |
{"code":-35005,"message":"calc PoW twice referring to one snapshot block"} |
ABI not found |
-35006 |
{"code":-35006,"message":"abi: method not found"} |
Invalid response latency |
-35007 |
{"code":-35007,"message":"invalid confirm time"} |
Contract not found |
-35008 |
{"code":-35008,"message":"contract not exists"} |
Invalid quota multiplier |
-35010 |
{"code":-35010,"message":"invalid quota ratio"} |
PoW not available due to network congestion |
-35011 |
{"code":-35011,"message":"PoW service not supported"} |
Maximum quota for a single transaction reached |
-35012 |
{"code":-35012,"message":"quota limit for block reached"} |
Invalid block producing address |
-36001 |
{"code":-36001, "message":"general account's sendBlock.Height must be larger than 1"} |
Hash verification failure |
-36002 |
{"code":-36002,"message":"verify hash failed"} |
Signature verification failure |
-36003 |
{"code":-36003,"message":"verify signature failed"} |
Invalid PoW nonce |
-36004 |
{"code":-36004,"message":"check pow nonce failed"} |
Hash verification failure for the previous block |
-36005 |
{"code":-36005,"message":"verify prevBlock failed, incorrect use of prevHash or fork happened"} |
Waiting for block |
-36006 |
{"code":-36006,"message":"verify referred block failed, pending for them"} |