Submitting to Validator
Section titled “Submitting to Validator”| Method | Action |
|---|---|
| submitTransaction | Submit a transaction to the validator. |
| submitTransactionCertificate | Submit a transaction certificate to the validator. |
submitTransaction
Section titled “submitTransaction”Submit a signed transaction to the validator. The validator will check that the signed transaction is valid and then will return its own signature.
The sender’s transaction signature is computed using Ed25519 where:
- the public key is stored in
Transaction.sender. - the message to be signed is the
Transactionstruct serialized using the BCS format with the following special rule:
BCS serialization libraries are available for several languages:
- Rust: the zefchain BCS library as a
serdebackend - Typescript/Javascript: the Mysten Labs BCS library
| Parameters | |
|---|---|
transaction | Transaction: It can be of any ClaimType. |
signature | SignatureOrMultiSig: Created by Transaction.sender and having the verifier signatures field set to the empty list in the case of ExternalClaims. |
| Returns | |
|---|---|
SubmitTransactionResponse | If the signed transaction was successfully submitted and validated. |
POST / submitTransaction
Curl:
curl -X POST 'https://rpc.fastset.xyz/' \ --header 'Content-Type: application/json' \ --data '{ "jsonrpc": "2.0", "id": 1, "method": "submitTransaction", "params": { "transaction": { "sender": [200,200,191,145,217,203,135,199,251,88,121,96,64,156,203,156,136,57,94,12,155,183,22,116,8,165,72,238,49,233,30,23], "recipient": [198,116,158,101,182,199,132,204,46,62,203,247,99,237,110,191,133,193,183,69,227,236,255,231,240,147,33,121,90,170,152,69], "nonce": 0, "timestamp_nanos": 1761039590871000000, "claim": { "TokenTransfer": { "token_id": [250,87,94,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "amount": "ffff", "user_data": null } } }, "signature": { "Signature": [243,31,62,0,151,90,232,58,19,85,223,180,108,88,58,96,121,162,10,170,165,106,79,50,100,191,137,166,203,176,149,113,211,75,182,33,30,9,1,223,166,3,97,72,62,45,39,110,168,47,70,26,87,33,39,58,152,91,56,129,149,18,172,14] } } }'Server response:
{ "jsonrpc": "2.0", "id": 1, "result": { "validator": [253,112,52,72,100,69,192,75,235,211,175,165,191,201,31,106,19,138,251,42,229,209,213,131,100,19,223,27,90,91,223,47], "signature": [63,103,129,188,17,174,83,78,181,10,105,211,249,200,181,150,97,89,88,58,183,39,181,191,193,91,147,215,81,68,118,251,125,107,169,146,23,54,68,229,114,85,186,33,224,69,4,201,127,248,201,125,31,208,209,211,47,220,57,27,101,44,60,0], "next_nonce": 0, "transaction_hash": [12,222,137,95,78,167,83,27,133,214,112,214,243,176,118,49,123,178,141,227,199,150,166,113,197,153,215,94,184,120,208,197] }}submitTransactionCertificate
Section titled “submitTransactionCertificate”Submit a transaction certificate to the validator.
| Parameters | |
|---|---|
transaction | Transaction: The transaction submitted previously via submitTransaction. |
signature | SignatureOrMultiSig: The (multi)signature submitted previously via submitTransaction. |
validator_signatures | Vec<(ValidatorName, Signature)>: A list of validator signatures. |
| Returns | |
|---|---|
ConfirmTransactionResponse | If the transaction was successfully submitted. |
Querying the Validator
Section titled “Querying the Validator”| getTransactions | Return a range of transactions stored by this validator. |
| getPerformanceInfo | Return information regarding the validator's recent performance.. |
| getAccountInfo | Return information regarding a specific account from the validator. |
| getTokenInfo | Return information regarding a set of tokens from the validator. |
| getVersion | Return the version number of the validator. |
getTransactions
Section titled “getTransactions”Return a range of transactions previously processed and currently stored by the validator.
| Parameters | |
|---|---|
page | PageRequest: Defines the range of items to be returned. |
| Returns | |
|---|---|
Page<Timed<TransactionInfo>> | Contains all transactions in the requested range. |
POST / getTransactions
Curl:
curl -X POST 'https://rpc.fastset.xyz/' \ --header 'Content-Type: application/json' \ --data '{ "jsonrpc": "2.0", "id": 1, "method": "getTransactions", "params": { "page": { "limit": 5, "token": null } } }'Server response:
{ "jsonrpc": "2.0", "id": 1, "result": { "data": [ { "data": { "hash": [144,15,75,119,138,196,94,26,15,189,206,26,253,108,106,107,230,167,51,167,114,141,248,90,161,193,169,241,12,111,45,122], "sender": [0,2,244,118,98,244,212,43,39,148,218,101,140,250,137,112,152,171,103,216,120,255,201,123,92,174,237,47,29,109,81,161], "recipient": [119,54,233,140,96,2,218,41,212,150,255,50,222,139,98,11,170,231,81,164,151,242,244,82,119,183,13,201,133,203,103,7], "nonce": 0, "claim": { "TokenTransfer": { "token_id": [250,87,94,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "amount": "100000", "user_data": null } }, "submission_timestamp_nanos": 1761074416134788600 }, "timing": { "signing_duration_nanos": 13429702, "user_time_nanos": 1569064, "settlement_duration_nanos": 28672802 } }, { "data": { "hash": [228,207,99,134,54,59,189,83,9,79,194,230,223,114,14,38,107,107,13,157,232,124,72,57,24,203,26,132,252,231,217,226], "sender": [119,54,233,140,96,2,218,41,212,150,255,50,222,139,98,11,170,231,81,164,151,242,244,82,119,183,13,201,133,203,103,7], "recipient": [163,96,54,175,29,21,35,215,53,18,81,181,115,86,16,107,148,24,149,51,18,166,173,45,18,28,185,85,225,164,179,239], "nonce": 0, "claim": { "TokenTransfer": { "token_id": [250,87,94,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "amount": "ffff", "user_data": null } }, "submission_timestamp_nanos": 1761074416182000000 }, "timing": { "signing_duration_nanos": 15058725, "user_time_nanos": 54509131, "settlement_duration_nanos": 29008247 } }], "next_page_token":2 }}getPerformanceInfo
Section titled “getPerformanceInfo”Return information regarding the validator’s recent performance.
| Returns | |
|---|---|
RpcPerformanceInfoResponse |
POST / getPerformanceInfo
Curl:
curl -X POST 'https://rpc.fastset.xyz/' \ --header 'Content-Type: application/json' \ --data '{ "jsonrpc": "2.0", "id": 1, "method": "getPerformanceInfo", "params": {} }'Server response:
{ "jsonrpc": "2.0", "id": 1, "result": { "weak_finality_nanos": 14244213, "strong_finality_nanos": 71123835, "tps_last_second": 0, "tps_last_minute": 0, "tps_last_hour": 0, "ops_last_second": 0, "ops_last_minute": 0, "ops_last_hour": 0, "signed_transactions": 2, "settled_transactions": 2, "accounts_count": 20002, "db_stats": { "channel_buffer_size": 0, "rocksdb_props": { "rocksdb.cur-size-all-mem-tables": 8192, "rocksdb.estimate-pending-compaction-bytes": 0, "rocksdb.block-cache-pinned-usage": 348, "rocksdb.estimate-table-readers-mem": 0, "rocksdb.block-cache-usage": 348 } } }}getAccountInfo
Section titled “getAccountInfo”Return information regarding a specific account from the validator.
| Parameters | |
|---|---|
address | FastSetAddress: The designated account's Fast address. |
token_balance_filter | Option<Vec<TokenId>>: The set of token types for which a balance request will be made. If this parameter is omitted, no custom token balances will be returned. If it is present and empty, the balance of all tokens owned by this account will be queried. |
state_key_filter | Option<Vec<StateKey>>: The set of state fields created by this account to be returned. If this parameter is omitted, no state fields will be returned. If it is present and empty, all state fields created by this account will be returned. |
certificate_by_nonce | Option<NonceRange>: If passed, a list of transaction certificates within the nonce range specified by this parameter submitted by account address will be returned (omitting those which do not exist or have been pruned from the validator database). |
| Returns | |
|---|---|
AccountInfoResponse |
POST / getAccountInfo
Curl:
curl -X POST 'https://rpc.fastset.xyz/' \ --header 'Content-Type: application/json' \ --data '{ "jsonrpc": "2.0", "id": 1, "method": "getAccountInfo", "params": { "address": [200,200,191,145,217,203,135,199,251,88,121,96,64,156,203,156,136,57,94,12,155,183,22,116,8,165,72,238,49,233,30,23], "token_balance_filter": null, "certificate_by_nonce": null } }'Server response:
{ "jsonrpc": "2.0", "id": 1, "result": { "sender": [200,200,191,145,217,203,135,199,251,88,121,96,64,156,203,156,136,57,94,12,155,183,22,116,8,165,72,238,49,233,30,23], "balance": "0", "state": null, "next_nonce": 0, "pending_confirmation": null, "requested_certificate": null, "requested_validated_transaction": null, "requested_received_transfers": [], "token_balance": [], "requested_claim_by_id": null, "requested_claims": [] }}getTokenInfo
Section titled “getTokenInfo”Return information regarding a set of tokens from the validator.
| Parameters | |
|---|---|
token_ids | Vec<TokenId>: An array of TokenIds to look up. |
| Returns | |
|---|---|
TokenInfoResponse | Contains data for all requested tokens. |
POST / getTokenInfo
Curl:
curl -X POST 'https://rpc.fastset.xyz/' \ --header 'Content-Type: application/json' \ --data '{ "jsonrpc": "2.0", "id": 1, "method": "getTokenInfo", "params": { "token_ids": [ [250,87,94,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ] } }'Server response:
{ "jsonrpc": "2.0", "id": 1, "result": { "requested_token_metadata": [ [ [250,87,94,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], null ] ] }}getVersion
Section titled “getVersion”Return the version number of the validator.
| Returns | |
|---|---|
String |