Proxy API
Submitting to Proxy
Submits a signed transaction to the proxy.
Distribute funds from the proxy's account to the specified account.
Cross-sign a transaction certificate using secp256k1 for EVM verification.
proxy_submitTransaction
Submit a transaction to the proxy to be forwarded to and settled on the network. Upon receipt of the transaction, if the transaction is complete, the proxy will perform the following steps:
Submit the signed transaction to all validators known to the proxy.
Accumulate signatures from all validators which attest that the transaction is valid.
Submit a transaction certificate (composed of the transaction and a quorum of validator signatures) to all validators known to the proxy.
If the transaction is incomplete, the proxy will store the transaction and await additional requests which provide the missing information.
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
serdebackendTypescript/Javascript: the Mysten Labs BCS library
transaction
Transaction: A transaction of any ClaimType.
signature
SignatureOrMultiSig: A (multi)signature over the transaction created by Transaction.sender and having the verifier signatures field set to the empty list prior to signing in the case of ExternalClaims.
Success: with a transaction certificate if the transaction is complete and was successfully submitted and validated. IncompleteMultiSigs: A flag indicating that the transaction is incomplete and has been stored on the proxy for eventual completion and submission.
proxy_faucetDrip
Distribute funds from the proxy's account to the specified account.
recipient
FastSetAddress: Account that should receive the funds.
amount
Amount: Amount of funds that should be added.
token_id
Option<TokenId>: If None, funds will be in the default token. If a TokenId is passed, funds will be in that token.
POST / proxy_faucetDrip
Curl:
Note: 3635c9adc5dea00000 = 1000 × 10¹⁸ = 1000 SET in raw units.
Server response:
proxy_evmSignCertificate
Cross-sign a transaction certificate using secp256k1 for EVM verification. Produces a signature that can be verified by EVM smart contracts, used for bridging and cross-chain verification.
certificate
TransactionCertificate: The certificate to cross-sign.
EVM signature
An EVM-compatible signature object that can be verified by EVM smart contracts, used for bridging and cross-chain verification.
Querying the Validator
Returns information regarding a specific account from a validator known to the proxy.
Returns information regarding a set of tokens from some validator known to the proxy.
proxy_getAccountInfo
Return information regarding a specific account from some validator known to the proxy.
address
FastSetAddress: The designated account to query.
token_balances_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).
AccountInfoResponse for the requested account.
proxy_getTokenInfo
Return information regarding a set of tokens from some validator known to the proxy.
Contains data for all requested tokens.
Error Codes
The proxy uses standard JSON-RPC 2.0 error codes, plus custom codes for application-specific errors.
-32700
Parse error
Malformed JSON in request body
-32601
Method not found
The requested method does not exist
-32602
Invalid params
Missing or invalid parameters
-32000
Server error
Transaction validation failure (e.g., nonce mismatch, insufficient balance)
-32003
Throttled
Rate limit exceeded (e.g., faucet cooldown)
Error response format:
Some errors include an additional data field with details: