- Fast (Archived)
- Developers
- Fast API
Data types
On this page
- Overview
- AccountInfoResponse
- AddressChange
- Amount
- Balance
- ClaimType
- FastAddress
- Mint
- MintOperation
- Burn
- BurnOperation
- MultiSig
- MultiSigConfig
- Nonce
- NonceRange
- Operation
- OperationBundle
- ProxySubmitTransactionResult
- PublicKeyBytes
- Quorum
- Signature
- SignatureOrMultiSig
- State
- StateKey
- TokenCreation
- ExternalClaim
- ExternalClaimBody
- ClaimData
- VerifierSig
- TokenId
- TokenInfoResponse
- TokenManagement
- TokenMetadata
- TokenTransfer
- TokenTransferOperation
- Transaction
- TransactionCertificate
- TransactionEnvelope
- UserData
- ValidatedTransaction
AccountInfoResponse
Section titled “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:
Download AccountInfoResponse (1).json
AddressChange
Section titled “AddressChange”| Variants | |
|---|---|
Add | array |
Remove | array |
JSON Schema:
Download AddressChange (2).json
Amount
Section titled “Amount”256-bit unsigned integer encoded as a hex string.
string
JSON Schema:
Balance
Section titled “Balance”257-bit signed integer with the magnitude encoded in hex preceded by - sign if applicable.
string
JSON Schema:
ClaimType
Section titled “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:
| 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
Section titled “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:
Create more funds of a token. The sender of the Transaction must be a current mint of the token.
| 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:
MintOperation
Section titled “MintOperation”Create more funds of a token. The sender of the Transaction must be a current mint of the token.
| 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:
Burn an amount of some custom token.
| Fields | |
|---|---|
token_id |
TokenId: The token to burn |
amount |
Amount: The amount to burn |
JSON Schema:
BurnOperation
Section titled “BurnOperation”Burn an amount of some custom token.
| Fields | |
|---|---|
token_id |
TokenId: The token to burn |
amount |
Amount: The amount to burn |
JSON Schema:
MultiSig
Section titled “MultiSig”| Fields | |
|---|---|
config | MultiSigConfig |
signatures | Array<(PublicKeyBytes, Signature)> |
JSON Schema:
MultiSigConfig
Section titled “MultiSigConfig”Determines the address of a multisig account.
| Fields | |
|---|---|
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:
Download MultiSigConfig (1).json
uint64
JSON Schema:
NonceRange
Section titled “NonceRange”| Fields | |
|---|---|
start | Nonce |
limit | uint |
JSON Schema:
Operation
Section titled “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:
OperationBundle
Section titled “OperationBundle”Array<Operation>
JSON Schema:
ProxySubmitTransactionResult
Section titled “ProxySubmitTransactionResult”| Variants | |
|---|---|
Success | TransactionCertificate |
IncompleteMultiSig | array |
JSON Schema:
Download ProxySubmitTransactionResult.json
PublicKeyBytes
Section titled “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
Section titled “Quorum”uint64
JSON Schema:
Signature
Section titled “Signature”An Ed25519 signature.
Array<uint8; length=64>
JSON Schema:
SignatureOrMultiSig
Section titled “SignatureOrMultiSig”| Variants | |
|---|---|
Signature | Signature |
MultiSig | MultiSig |
JSON Schema:
Download SignatureOrMultiSig.json
Array<uint8; length=32>
JSON Schema:
StateKey
Section titled “StateKey”Array<uint8; length=32>
JSON Schema:
TokenCreation
Section titled “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:
ExternalClaim
Section titled “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 |
|---|---|
| claim | ExternalClaimBody |
| signatures | Array<VerifierSig> |
JSON Schema:
Download ExternalClaim (2).json
ExternalClaimBody
Section titled “ExternalClaimBody”| Fields | |
|---|---|
verifier_committee |
Array<FastSetAddress> |
verifier_quorum |
Quorum |
claim_data |
ClaimData |
JSON Schema:
Download ExternalClaimBody (1).json
ClaimData
Section titled “ClaimData”Array<uint8>
JSON Schema:
VerifierSig
Section titled “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:
TokenId
Section titled “TokenId”Array<uint8; length=32>
JSON Schema:
TokenInfoResponse
Section titled “TokenInfoResponse”| Fields | |
|---|---|
requested_token_metadata | Array<(Array<uint8; length=32>,TokenMetadata)> |
JSON Schema:
Download TokenInfoResponse.json
TokenManagement
Section titled “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
Section titled “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:
TokenTransfer
Section titled “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:
TokenTransferOperation
Section titled “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:
Download TokenTransferOperation.json
Transaction
Section titled “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:
TransactionCertificate
Section titled “TransactionCertificate”A Transaction along with a quorum of validator signatures.
| Fields | |
|---|---|
envelope | TransactionEnvelope |
signatures | Array<(PublicKeyBytes,Signature)> |
JSON Schema:
Download TransactionCertificate.json
TransactionEnvelope
Section titled “TransactionEnvelope”A Transaction along with its sender’s signature.
| Fields | |
|---|---|
transaction | Transaction |
signature | SignatureOrMultiSig |
JSON Schema:
Download TransactionEnvelope.json
UserData
Section titled “UserData”Option<Array<uint8; length=32>>
JSON Schema:
ValidatedTransaction
Section titled “ValidatedTransaction”A Transaction along with the signature from one validator.
| Fields | |
|---|---|
value | TransactionEnvelope |
validator | PublicKeyBytes |
signature | Signature |
JSON Schema:
Download ValidatedTransaction.json
A byte sequence that names an entity on or off the Fast network, depending on the name of type which stores this value.