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 Transaction struct serialized using the BCS formatarrow-up-right with the following special rule:

    • Numerical string Amount/Balance fields are encoded as a litte-endian unsigned 256-bit number as an array of uint8 of length 32.

BCS serialization libraries are available for several languages:

Parameters

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.

Returns

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.

chevron-rightPOST / proxy_submitTransactionhashtag

Curl:

Server response:


proxy_faucetDrip

Distribute funds from the proxy's account to the specified account.

Parameters

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.

chevron-rightPOST / proxy_faucetDriphashtag

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.

Parameters

certificate

TransactionCertificate: The certificate to cross-sign.

Returns

EVM signature

An EVM-compatible signature object that can be verified by EVM smart contracts, used for bridging and cross-chain verification.

chevron-rightPOST / proxy_evmSignCertificatehashtag

Curl:


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.

Parameters

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).

Returns

AccountInfoResponse for the requested account.

chevron-rightPOST / proxy_getAccountInfohashtag

Curl:

Server response:


proxy_getTokenInfo

Return information regarding a set of tokens from some validator known to the proxy.

Parameters

token_ids

Vec<TokenId>: An array of TokenIds to look up.

Returns

Contains data for all requested tokens.

chevron-rightPOST / proxy_getTokenInfohashtag

Curl:

Server response:


Error Codes

The proxy uses standard JSON-RPC 2.0 error codes, plus custom codes for application-specific errors.

Code
Message
Description

-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: