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.

Fields

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_state

Array<( StateKey,State)>: The keys and values of the account's state as 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

Variants

Add

array

Remove

array

JSON Schema:

file-download
564B

Amount

256-bit unsigned integer encoded as a hex string.

string

JSON Schema:

file-download
173B

Balance

257-bit signed integer with the magnitude encoded in hex preceded by - sign if applicable.

string

JSON Schema:

file-download
217B

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.

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:

file-download
19KB

Fields

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:

file-download
628B

Mint

Create more funds of a token. The sender of the Transaction must be a current mint of the token.

circle-exclamation
Fields

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:

file-download
1KB

MintOperation

Create more funds of a token. The sender of the Transaction must be a current mint of the token.

circle-exclamation
Fields

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:

file-download
2KB

Burn

Burn an amount of some custom token.

Fields

token_id

TokenId: The token to burn

amount

Amount: The amount to burn

JSON Schema:

file-download
854B

BurnOperation

Burn an amount of some custom token.

Fields

token_id

TokenId: The token to burn

amount

Amount: The amount to burn

JSON Schema:

file-download
849B

MultiSig

JSON Schema:

file-download
2KB

MultiSigConfig

Determines the address of a multisig account.

Fields

authorized_signers

Array<PublicKeyBytesarrow-up-right>: The accounts which may sign for a multisig transaction to be accepted.

quorum

Quorumarrow-up-right: The minimum number of accounts that must sign.

nonce

Noncearrow-up-right: Arbitrary data. Useful for creating multiple distinct multisig accounts with the same committee/quorum.

JSON Schema:


Nonce

uint64

JSON Schema:

file-download
142B

NonceRange

Fields

start

limit

uint

JSON Schema:

file-download
142B

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.

Variants

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:

file-download
14KB

OperationBundle

Array<Operation>

JSON Schema:


ProxySubmitTransactionResult

Variants

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:

file-download
628B

Quorum

uint64

JSON Schema:

file-download
143B

Signature

An Ed25519 signature.

Array<uint8; length=64>

JSON Schema:

file-download
246B

SignatureOrMultiSig

Variants

Signature

MultiSig

JSON Schema:


State

Array<uint8; length=32>

JSON Schema:

file-download
239B

StateKey

Array<uint8; length=32>

JSON Schema:

file-download
242B

TokenCreation

Create a new token. The token ID is derived from the Transaction , thus it also depends on the creator and the Nonce.

Fields

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:

file-download
2KB

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.

Field
Description

signatures

JSON Schema:

file-download
3KB

ExternalClaimBody

Fields

verifier_committee

verifier_quorum

claim_data

JSON Schema:

ClaimData

Array<uint8>

JSON Schema:

file-download
207B

VerifierSig

Fields

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:

file-download
1KB

TokenId

Array<uint8; length=32>

JSON Schema:

file-download
256B

TokenInfoResponse

Fields

requested_token_metadata

Array<(Array<uint8; length=32>,TokenMetadata)>

JSON Schema:


TokenManagement

Manage an existing token.

Fields

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.

Fields

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:

file-download
2KB

TokenTransfer

Transfer tokens to another address.

Fields

token_id

Array<uint8; length=32>: Token ID to transfer.

amount

Amount: Amount to transfer.

user_data

UserData: Extra data field to associate with this transfer.

JSON Schema:

file-download
1KB

TokenTransferOperation

Transfer tokens to another address. This is a variant of TokenTransfer that adds a recipient field.

Fields

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.

Fields

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:

file-download
21KB

TransactionCertificate

A Transaction along with a quorum of validator signatures.

Fields

signatures

JSON Schema:


TransactionEnvelope

A Transaction along with its sender's signature.

Fields

transaction

JSON Schema:


UserData

Option<Array<uint8; length=32>>

JSON Schema:

file-download
264B

ValidatedTransaction

A Transaction along with the signature from one validator.

Fields

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.