Data types
AccountInfoResponse
Data associated to one account. Contains optional fields for returning account-related info from various types of queries. Reflects the view of a single validator, which may be lagging behind the rest of the network.
sender
PublicKeyBytes: The address of the account.
balance
Balance: Balance in native tokens of the account.
next_nonce
Nonce: The next transaction from the account is required to have this nonce.
pending_confirmation
ValidatedTransaction (optional): The transaction that has been validated by the current validator, but not yet confirmed (if requested).
requested_certificates
Option<Array<TransactionCertificate>> (optional): A single transaction certificate (if requested).
requested_validated_transaction
ValidatedTransaction (optional): A single validated transaction (if requested).
token_balance
Array<(Array<uint8; length=32>,Balance)>: Token balances of tokens held by this account (may not be all tokens held).
JSON Schema:
AddressChange
Add
array
Remove
array
JSON Schema:
Amount
256-bit unsigned integer encoded as a hex string.
string
JSON Schema:
Balance
257-bit signed integer with the magnitude encoded in hex preceded by - sign if applicable.
string
JSON Schema:
ClaimType
A claim is a concept on Fast that drives state changes on the Fast network. It is akin to the "calldata" of a transaction on Ethereum.
There are many types of claims, denoting the actions that can be packed into a transaction, so ClaimType comes with several variants.
TokenTransfer
TokenTransfer: Transfer or burn tokens (that is, transfer tokens to the burn address)
TokenCreation
TokenCreation: Create custom token
TokenManagement
TokenManagement: Modify custom token
ExternalClaim
ExternalClaim: Arbitrary byte data
Mint
Mint: Mint funds in a custom token
Burn
Burn: burns the amount of token specified
Batch
OperationBundle: Perform several operations
JSON Schema:
verifier_committee
Array<PublicKeyBytes>: Set of verifiers (regular Fast addresses) that can sign for this ExternalClaim.
verifier_quorum
Quorum: Minimum number of verifiers in verifier_committee for which Fast validators will sign this transaction.
claim_data
ClaimData: Arbitrary data that the verifiers are signing.
FastAddress
A byte sequence that names an entity on or off the Fast network, depending on the name of type which stores this value.
It is typically encoded as an Ed25519 public key, but may have other formats, including but not limited to, a 32-byte string composed of all 0x00 bytes (burn address). Note that any funds sent to the burn address will be permanently lost!
Array<uint8; length=32>
JSON Schema:
Mint
Create more funds of a token. The sender of the Transaction must be a current mint of the token.
Warning: This is not independent of a token management operation that removes the sender of this transaction from the list of mints.
token_id
Array<uint8; length=32>: The hash of the TokenCreation transaction that created the token. This is calculated using the keccak256 hash over the data encoded in the same way as for signing.
amount
Amount: Amount to mint.
JSON Schema:
MintOperation
Create more funds of a token. The sender of the Transaction must be a current mint of the token.
Warning: This is not independent of a token management operation that removes the sender of this transaction from the list of mints. This is a variant of Mint that adds a recipient field.
token_id
Array<uint8; length=32>: The hash of the TokenCreation transaction that created the token. This is calculated using the keccak256 hash over the data encoded in the same way as for signing.
recipient
PublicKeyBytes: Recipient of the new funds.
amount
Amount: Amount to mint.
JSON Schema:
Burn
Burn an amount of some custom token.
JSON Schema:
BurnOperation
Burn an amount of some custom token.
JSON Schema:
MultiSig
config
signatures
Array<(PublicKeyBytes, Signature)>
JSON Schema:
MultiSigConfig
Determines the address of a multisig account.
authorized_signers
Array<PublicKeyBytes>: The accounts which may sign for a multisig transaction to be accepted.
quorum
Quorum: The minimum number of accounts that must sign.
nonce
Nonce: Arbitrary data. Useful for creating multiple distinct multisig accounts with the same committee/quorum.
JSON Schema:
Nonce
uint64
JSON Schema:
NonceRange
start
limit
uint
JSON Schema:
Operation
One of various types of actions that be put in a multi-operation transaction. Payload structs are different from the top-level ClaimType where we need to support multiple operations with different receivers.
TokenTransfer
TokenTransferOperation: Transfer or burn tokens, that is transfer tokens to the burn address.
TokenCreation
TokenCreation: Create custom token
TokenManagement
TokenManagement: Modify custom token
ExternalClaim
ExternalClaim: Arbitrary byte data
Mint
MintOperation: Mint funds in a custom token
Burn
Burn: burns the amount of token specified
JSON Schema:
OperationBundle
Array<Operation>
JSON Schema:
ProxySubmitTransactionResult
Success
IncompleteMultiSig
array
JSON Schema:
PublicKeyBytes
A byte sequence that names an entity on or off the Fast network, depending on the name of type which stores this value.
It is typically encoded as an Ed25519 public key, but may have other formats, including but not limited to, a 32-byte string composed of all 0x00 bytes (burn address). Note that any funds sent to the burn address will be permanently lost!
Array<uint8; length=32>
JSON Schema:
Quorum
uint64
JSON Schema:
Signature
An Ed25519 signature.
Array<uint8; length=64>
JSON Schema:
SignatureOrMultiSig
JSON Schema:
State
Array<uint8; length=32>
JSON Schema:
StateKey
Array<uint8; length=32>
JSON Schema:
TokenCreation
Create a new token. The token ID is derived from the Transaction , thus it also depends on the creator and the Nonce.
token_name
string: Human-readable name
decimals
uint8: Power of 10 that should be considered a full unit of this token. An Amount is still always in least units.
initial_amount
Amount: Initial balance, which will be held by the creator of the token.
mints
Array<PublicKeyBytes>: Addresses which will be able to create more of this token.
user_data
UserData: Arbitrary userdata attached to this transaction
JSON Schema:
ExternalClaim
A claim on some arbitrary data. A set of verifiers (external to the Fast network) verify the claim and attach their signatures to it. Then, Fast validators validates these signatures upon receiving such claim.
claim
signatures
Array<VerifierSig>
JSON Schema:
ExternalClaimBody
JSON Schema:
ClaimData
Array<uint8>
JSON Schema:
VerifierSig
verifier_addr
PublicKeyBytes: the public key (address) of the verifier
sig
Signature: ED25519 signature over the entire Transaction struct without any verifier signatures
JSON Schema:
TokenId
Array<uint8; length=32>
JSON Schema:
TokenInfoResponse
requested_token_metadata
Array<(Array<uint8; length=32>,TokenMetadata)>
JSON Schema:
TokenManagement
Manage an existing token.
token_id
Array<uint8; length=32>: The id of the token to be managed
update_id
Nonce: The update id for this token (used for sequencing). Each update id must be one greater than the last.
new_admin
PublicKeyBytes (optional): The new admin address; preserves existing admin if None.
mints
Array<(AddressChange,PublicKeyBytes)>: The minter addresses to be added/removed.
user_data
UserData: Arbitrary userdata attached to this transaction.
JSON Schema:
TokenMetadata
Encodes metadata about a custom token.
update_id
Nonce: The number of management operations applied to some token.
admin
PublicKeyBytes: The current token admin.
token_name
string: The name of the token.
decimals
uint8: The number of decimals for this token.
total_supply
Amount: The total supply for this token.
mints
Array<PublicKeyBytes>: The authorized minting addresses for this token.
JSON Schema:
TokenTransfer
Transfer tokens to another address.
JSON Schema:
TokenTransferOperation
Transfer tokens to another address. This is a variant of TokenTransfer that adds a recipient field.
token_id
Array<uint8; length=32>: Token ID to transfer.
recipient
PublicKeyBytes: Recipient.
amount
Amount: Amount to transfer.
user_data
UserData: Extra data field to associate with this transfer.
JSON Schema:
Transaction
Action that can be submitted and confirmed on the network.
sender
PublicKeyBytes: Address of sender, and intended signer of this transaction.
recipient
Address: Address of the recipient or the burn address.
nonce
Nonce: A sequence number. Transactions sent by the same account are ordered by nonce.
timestamp_nanos
uint128: Nanos since the Unix epoch.
claim
ClaimType: Type-dependent data.
archival
boolean: Specifies whether this transaction should be archived. When an archived transaction is confirmed on a validator, subsequent is_settled requests to that validator must succeed.
JSON Schema:
TransactionCertificate
A Transaction along with a quorum of validator signatures.
envelope
signatures
Array<(PublicKeyBytes,Signature)>
JSON Schema:
TransactionEnvelope
A Transaction along with its sender's signature.
transaction
signature
JSON Schema:
UserData
Option<Array<uint8; length=32>>
JSON Schema:
ValidatedTransaction
A Transaction along with the signature from one validator.
JSON Schema:
A byte sequence that names an entity on or off the Fast network, depending on the name of type which stores this value.