# Models

## The AccountInfoResponse object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"AccountInfoResponse":{"type":"object","description":"Data associated to one account. Contains optional fields for returning account-related info from various\ntypes of queries. Reflects the view of a single validator, which may be lagging behind the rest of the network.","required":["sender","balance","next_nonce","requested_state","token_balance"],"properties":{"balance":{"$ref":"#/components/schemas/Balance","description":"Balance in native tokens of the account"},"next_nonce":{"$ref":"#/components/schemas/Nonce","description":"The next transaction from the account is required to have this nonce."},"pending_confirmation":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ValidatedTransaction","description":"The transaction that has been validated by the current validator, but not yet confirmed (if\nrequested)"}]},"requested_certificates":{"type":["array","null"],"items":{"$ref":"#/components/schemas/TransactionCertificate"},"description":"A single transaction certificate (if requested)"},"requested_state":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string"},{"type":"string"}]},"description":"The keys and values of the account's state as requested"},"requested_validated_transaction":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ValidatedTransaction","description":"A single validated transaction (if requested)"}]},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"The address of the account"},"token_balance":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string"},{"type":"string"}]},"description":"Token balances of tokens held by this account (may not be all tokens held)."}}},"Balance":{"type":"string"},"Nonce":{"type":"integer","format":"int64","minimum":0},"ValidatedTransaction":{"type":"object","description":"A Transaction along with the signature from one validator","required":["value","validator","signature"],"properties":{"signature":{"$ref":"#/components/schemas/Signature"},"validator":{"$ref":"#/components/schemas/PublicKeyBytes"},"value":{"$ref":"#/components/schemas/TransactionEnvelope"}}},"Signature":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"TransactionCertificate":{"type":"object","description":"A Transaction along with a quorum of validator signatures","required":["envelope","signatures"],"properties":{"envelope":{"$ref":"#/components/schemas/TransactionEnvelope"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}}}}}
```

## The AccountInfoSuccess object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"AccountInfoSuccess":{"type":"object","description":"Schema for `GET /v1/accounts/{address}` response.","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/AccountInfoResponse"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"AccountInfoResponse":{"type":"object","description":"Data associated to one account. Contains optional fields for returning account-related info from various\ntypes of queries. Reflects the view of a single validator, which may be lagging behind the rest of the network.","required":["sender","balance","next_nonce","requested_state","token_balance"],"properties":{"balance":{"$ref":"#/components/schemas/Balance","description":"Balance in native tokens of the account"},"next_nonce":{"$ref":"#/components/schemas/Nonce","description":"The next transaction from the account is required to have this nonce."},"pending_confirmation":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ValidatedTransaction","description":"The transaction that has been validated by the current validator, but not yet confirmed (if\nrequested)"}]},"requested_certificates":{"type":["array","null"],"items":{"$ref":"#/components/schemas/TransactionCertificate"},"description":"A single transaction certificate (if requested)"},"requested_state":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string"},{"type":"string"}]},"description":"The keys and values of the account's state as requested"},"requested_validated_transaction":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ValidatedTransaction","description":"A single validated transaction (if requested)"}]},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"The address of the account"},"token_balance":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string"},{"type":"string"}]},"description":"Token balances of tokens held by this account (may not be all tokens held)."}}},"Balance":{"type":"string"},"Nonce":{"type":"integer","format":"int64","minimum":0},"ValidatedTransaction":{"type":"object","description":"A Transaction along with the signature from one validator","required":["value","validator","signature"],"properties":{"signature":{"$ref":"#/components/schemas/Signature"},"validator":{"$ref":"#/components/schemas/PublicKeyBytes"},"value":{"$ref":"#/components/schemas/TransactionEnvelope"}}},"Signature":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"TransactionCertificate":{"type":"object","description":"A Transaction along with a quorum of validator signatures","required":["envelope","signatures"],"properties":{"envelope":{"$ref":"#/components/schemas/TransactionEnvelope"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The Amount object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"Amount":{"type":"string"}}}}
```

## The Balance object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"Balance":{"type":"string"}}}}
```

## The BurnRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"Amount":{"type":"string"},"TokenId":{"type":"string"}}}}
```

## The BurnRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"Amount":{"type":"string"},"TokenId":{"type":"string"}}}}
```

## The BurnRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"Amount":{"type":"string"},"TokenId":{"type":"string"}}}}
```

## The CertificateListSuccess object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"CertificateListSuccess":{"type":"object","description":"Schema for `GET /v1/accounts/{address}/certificates` response.","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TransactionCertificate"}},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"TransactionCertificate":{"type":"object","description":"A Transaction along with a quorum of validator signatures","required":["envelope","signatures"],"properties":{"envelope":{"$ref":"#/components/schemas/TransactionEnvelope"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The CertificateSuccess object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"CertificateSuccess":{"type":"object","description":"Schema for `GET /v1/certificate/{tx_id}` response.","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/TransactionCertificate"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"TransactionCertificate":{"type":"object","description":"A Transaction along with a quorum of validator signatures","required":["envelope","signatures"],"properties":{"envelope":{"$ref":"#/components/schemas/TransactionEnvelope"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The ClaimData object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ClaimData":{"type":"string"}}}}
```

## The ClaimTypeRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"}}}}
```

## The ClaimsRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}}}}}
```

## The ClaimsRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}}}}}
```

## The CommitteeChangeRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}}}}
```

## The CommitteeChangeRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}}}}
```

## The CommitteeChangeRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}}}}
```

## The CommitteeConfigRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}}}}
```

## The CommitteeConfigRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}}}}
```

## The CommitteeConfigRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}}}}
```

## The ErrorEnvelope object

````json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ErrorEnvelope":{"type":"object","description":"Error response envelope.\n\n```json\n{\n  \"error\": { \"code\": \"UNEXPECTED_NONCE\", \"message\": \"…\", \"details\": { … } },\n  \"meta\": { \"timestamp\": \"…\" }\n}\n```","required":["error","meta"],"properties":{"error":{"description":"Structured error body built from [`RestApiError`]."},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
````

## The EscrowCompleteRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"}}}}
```

## The EscrowCompleteRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"}}}}
```

## The EscrowConfigIdRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowConfigIdRelease20260407":{"type":"string"}}}}
```

## The EscrowConfigIdRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowConfigIdRelease20260508":{"type":"string"}}}}
```

## The EscrowCreateConfigRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"}}}}
```

## The EscrowCreateConfigRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"}}}}
```

## The EscrowCreateJobRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Amount":{"type":"string"}}}}
```

## The EscrowCreateJobRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Amount":{"type":"string"}}}}
```

## The EscrowJobIdRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowJobIdRelease20260407":{"type":"string"}}}}
```

## The EscrowJobIdRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowJobIdRelease20260508":{"type":"string"}}}}
```

## The EscrowJobListSuccess object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowJobListSuccess":{"type":"object","description":"Schema for `GET /v1/escrow-jobs` response.","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EscrowJobRecord"}},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"EscrowJobRecord":{"type":"object","required":["job_id","config_id","client","provider","evaluator","token_id","provider_fee","evaluator_fee","description","status"],"properties":{"client":{"$ref":"#/components/schemas/PublicKeyBytes"},"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"deliverable":{"type":["string","null"]},"description":{"type":"string"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"evaluator_fee":{"$ref":"#/components/schemas/Amount"},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"},"status":{"type":"string"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"EscrowConfigIdRelease20260508":{"type":"string"},"Amount":{"type":"string"},"EscrowJobIdRelease20260508":{"type":"string"},"TokenId":{"type":"string"},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The EscrowJobRecord object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowJobRecord":{"type":"object","required":["job_id","config_id","client","provider","evaluator","token_id","provider_fee","evaluator_fee","description","status"],"properties":{"client":{"$ref":"#/components/schemas/PublicKeyBytes"},"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"deliverable":{"type":["string","null"]},"description":{"type":"string"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"evaluator_fee":{"$ref":"#/components/schemas/Amount"},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"},"status":{"type":"string"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"EscrowConfigIdRelease20260508":{"type":"string"},"Amount":{"type":"string"},"EscrowJobIdRelease20260508":{"type":"string"},"TokenId":{"type":"string"}}}}
```

## The EscrowJobStatusRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowJobStatusRelease20260508":{"type":"string","enum":["Funded","Submitted","Completed","Refunded"]}}}}
```

## The EscrowJobSuccess object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowJobSuccess":{"type":"object","description":"Schema for `GET /v1/escrow-jobs/{job_id}` response.","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/EscrowJobRecord"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"EscrowJobRecord":{"type":"object","required":["job_id","config_id","client","provider","evaluator","token_id","provider_fee","evaluator_fee","description","status"],"properties":{"client":{"$ref":"#/components/schemas/PublicKeyBytes"},"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"deliverable":{"type":["string","null"]},"description":{"type":"string"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"evaluator_fee":{"$ref":"#/components/schemas/Amount"},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"},"status":{"type":"string"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"EscrowConfigIdRelease20260508":{"type":"string"},"Amount":{"type":"string"},"EscrowJobIdRelease20260508":{"type":"string"},"TokenId":{"type":"string"},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The EscrowJobWithCerts object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowJobWithCerts":{"type":"object","description":"Response wrapper for escrow endpoints when `certs=true`.","required":["job","certificates"],"properties":{"certificates":{"type":"array","items":{"$ref":"#/components/schemas/TransactionCertificate"}},"job":{"$ref":"#/components/schemas/EscrowJobRecord"}}},"TransactionCertificate":{"type":"object","description":"A Transaction along with a quorum of validator signatures","required":["envelope","signatures"],"properties":{"envelope":{"$ref":"#/components/schemas/TransactionEnvelope"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobRecord":{"type":"object","required":["job_id","config_id","client","provider","evaluator","token_id","provider_fee","evaluator_fee","description","status"],"properties":{"client":{"$ref":"#/components/schemas/PublicKeyBytes"},"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"deliverable":{"type":["string","null"]},"description":{"type":"string"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"evaluator_fee":{"$ref":"#/components/schemas/Amount"},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"},"status":{"type":"string"},"token_id":{"$ref":"#/components/schemas/TokenId"}}}}}}
```

## The EscrowJobWithCertsListSuccess object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowJobWithCertsListSuccess":{"type":"object","description":"Schema for `GET /v1/escrow-jobs?certs=true` response.","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EscrowJobWithCerts"}},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"EscrowJobWithCerts":{"type":"object","description":"Response wrapper for escrow endpoints when `certs=true`.","required":["job","certificates"],"properties":{"certificates":{"type":"array","items":{"$ref":"#/components/schemas/TransactionCertificate"}},"job":{"$ref":"#/components/schemas/EscrowJobRecord"}}},"TransactionCertificate":{"type":"object","description":"A Transaction along with a quorum of validator signatures","required":["envelope","signatures"],"properties":{"envelope":{"$ref":"#/components/schemas/TransactionEnvelope"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobRecord":{"type":"object","required":["job_id","config_id","client","provider","evaluator","token_id","provider_fee","evaluator_fee","description","status"],"properties":{"client":{"$ref":"#/components/schemas/PublicKeyBytes"},"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"deliverable":{"type":["string","null"]},"description":{"type":"string"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"evaluator_fee":{"$ref":"#/components/schemas/Amount"},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"},"status":{"type":"string"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The EscrowJobWithCertsSuccess object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowJobWithCertsSuccess":{"type":"object","description":"Schema for `GET /v1/escrow-jobs/{job_id}?certs=true` response.","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/EscrowJobWithCerts"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"EscrowJobWithCerts":{"type":"object","description":"Response wrapper for escrow endpoints when `certs=true`.","required":["job","certificates"],"properties":{"certificates":{"type":"array","items":{"$ref":"#/components/schemas/TransactionCertificate"}},"job":{"$ref":"#/components/schemas/EscrowJobRecord"}}},"TransactionCertificate":{"type":"object","description":"A Transaction along with a quorum of validator signatures","required":["envelope","signatures"],"properties":{"envelope":{"$ref":"#/components/schemas/TransactionEnvelope"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobRecord":{"type":"object","required":["job_id","config_id","client","provider","evaluator","token_id","provider_fee","evaluator_fee","description","status"],"properties":{"client":{"$ref":"#/components/schemas/PublicKeyBytes"},"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"deliverable":{"type":["string","null"]},"description":{"type":"string"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"evaluator_fee":{"$ref":"#/components/schemas/Amount"},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"},"status":{"type":"string"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The EscrowRejectRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"}}}}
```

## The EscrowRejectRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"}}}}
```

## The EscrowRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}}}}}
```

## The EscrowRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}}}}}
```

## The EscrowSubmitRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"}}}}
```

## The EscrowSubmitRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"}}}}
```

## The ExternalClaimBodyRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Quorum":{"type":"integer","format":"int64","minimum":0}}}}
```

## The ExternalClaimBodyRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Quorum":{"type":"integer","format":"int64","minimum":0}}}}
```

## The ExternalClaimBodyRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Quorum":{"type":"integer","format":"int64","minimum":0}}}}
```

## The ExternalClaimRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"}}}}
```

## The ExternalClaimRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"}}}}
```

## The ExternalClaimRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"}}}}
```

## The FastSetAddress object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"FastSetAddress":{"type":"string"}}}}
```

## The FastSetError object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"FastSetError":{"oneOf":[{"type":"object","required":["InternalError"],"properties":{"InternalError":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},{"type":"object","required":["InvalidSignature"],"properties":{"InvalidSignature":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"signer":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes"}]}}}}},{"type":"object","required":["UnknownSigner"],"properties":{"UnknownSigner":{"type":"object","required":["signer"],"properties":{"signer":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"string","enum":["CannotSign"]},{"type":"string","enum":["CannotJoinCommitteeAlreadyMember"]},{"type":"string","enum":["CannotLeaveCommitteeNotMember"]},{"type":"object","required":["NonSubmittableOperation"],"properties":{"NonSubmittableOperation":{"type":"object","required":["reason"],"properties":{"reason":{"type":"string"}}}}},{"type":"string","enum":["MissingCommitteeInfo"]},{"type":"object","required":["CertificateRequiresQuorum"],"properties":{"CertificateRequiresQuorum":{"type":"object","required":["num_signers","quorum"],"properties":{"num_signers":{"type":"integer","minimum":0},"quorum":{"type":"integer","minimum":0}}}}},{"type":"string","enum":["IncorrectTransferAmount"]},{"type":"object","required":["UnexpectedNonce"],"properties":{"UnexpectedNonce":{"type":"object","required":["expected_nonce","actual_nonce"],"properties":{"actual_nonce":{"$ref":"#/components/schemas/Nonce"},"expected_nonce":{"$ref":"#/components/schemas/Nonce"}}}}},{"type":"object","required":["InsufficientFunding"],"properties":{"InsufficientFunding":{"type":"object","required":["current_balance","needed"],"properties":{"current_balance":{"$ref":"#/components/schemas/Balance"},"needed":{"$ref":"#/components/schemas/Balance"}}}}},{"type":"object","required":["InsufficientFundingForFee"],"properties":{"InsufficientFundingForFee":{"type":"object","required":["current_balance","needed"],"properties":{"current_balance":{"$ref":"#/components/schemas/Balance"},"needed":{"$ref":"#/components/schemas/Balance"},"token_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId"}]}}}}},{"type":"object","required":["PreviousTransactionMustBeConfirmedFirst"],"properties":{"PreviousTransactionMustBeConfirmedFirst":{"type":"object","required":["pending_confirmation"],"properties":{"pending_confirmation":{"$ref":"#/components/schemas/TransactionEnvelope"}}}}},{"type":"object","required":["MissingEarlierConfirmations"],"properties":{"MissingEarlierConfirmations":{"type":"object","required":["current_nonce"],"properties":{"current_nonce":{"$ref":"#/components/schemas/Nonce"}}}}},{"type":"object","required":["UnknownSenderAccount"],"properties":{"UnknownSenderAccount":{"type":"object","required":["address"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"object","required":["CertificateSignerReuse"],"properties":{"CertificateSignerReuse":{"type":"object","required":["address"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"object","required":["CertificateTooYoung"],"properties":{"CertificateTooYoung":{"type":"object","required":["resend_after_nanos"],"properties":{"resend_after_nanos":{"type":"integer","format":"int64","minimum":0}}}}},{"type":"object","required":["CertificateNotFromCurrentEpoch"],"properties":{"CertificateNotFromCurrentEpoch":{"type":"object","required":["current_epoch","received_epoch"],"properties":{"current_epoch":{"type":"integer","format":"int32","minimum":0},"received_epoch":{"type":"integer","format":"int32","minimum":0}}}}},{"type":"object","required":["InvalidNonce"],"properties":{"InvalidNonce":{"type":"object","required":["actual_nonce","limit"],"properties":{"actual_nonce":{"$ref":"#/components/schemas/Nonce"},"limit":{"$ref":"#/components/schemas/Nonce"}}}}},{"type":"string","enum":["NonceOverflow"]},{"type":"string","enum":["NonceUnderflow"]},{"type":"string","enum":["AmountOverflow"]},{"type":"string","enum":["AmountUnderflow"]},{"type":"string","enum":["BalanceOverflow"]},{"type":"string","enum":["BalanceUnderflow"]},{"type":"string","enum":["InvalidTimestampInFuture"]},{"type":"string","enum":["TimestampTooOld"]},{"type":"string","enum":["InvalidDecoding"]},{"type":"string","enum":["InvalidTransactionSender"]},{"type":"string","enum":["InvalidValidatorConfigAddress"]},{"type":"string","enum":["CommitteeAdminCannotSendTransactions"]},{"type":"object","required":["InvalidMinterAddress"],"properties":{"InvalidMinterAddress":{"type":"object","required":["address"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"object","required":["DuplicateOrUselessInfo"],"properties":{"DuplicateOrUselessInfo":{"type":"object","required":["context"],"properties":{"context":{"type":"string"}}}}},{"type":"object","required":["UnauthorizedTx"],"properties":{"UnauthorizedTx":{"type":"object","required":["explanation"],"properties":{"explanation":{"type":"string"}}}}},{"type":"object","required":["UnknownTokenId"],"properties":{"UnknownTokenId":{"type":"object","required":["token_id"],"properties":{"token_id":{"$ref":"#/components/schemas/TokenId"}}}}},{"type":"object","required":["DuplicateTokenId"],"properties":{"DuplicateTokenId":{"type":"object","required":["token_id"],"properties":{"token_id":{"$ref":"#/components/schemas/TokenId"}}}}},{"type":"object","required":["UnexpectedTokenUpdateId"],"properties":{"UnexpectedTokenUpdateId":{"type":"object","required":["token_id","expected_update_id","actual_update_id"],"properties":{"actual_update_id":{"$ref":"#/components/schemas/Nonce"},"expected_update_id":{"$ref":"#/components/schemas/Nonce"},"token_id":{"$ref":"#/components/schemas/TokenId"}}}}},{"type":"string","enum":["InvalidPreviousState"]},{"type":"string","enum":["InvalidStateUpdate"]},{"type":"object","required":["AuthorizedSignersNotPresorted"],"properties":{"AuthorizedSignersNotPresorted":{"type":"object","required":["address"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"object","required":["SignatureNotPresorted"],"properties":{"SignatureNotPresorted":{"type":"object","required":["address"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"string","enum":["UnsupportedCombination"]},{"type":"string","enum":["CertificateNotfound"]},{"type":"object","required":["WitnessCertificateTimestampMismatch"],"properties":{"WitnessCertificateTimestampMismatch":{"type":"object","required":["expected","actual"],"properties":{"actual":{"type":"integer","minimum":0},"expected":{"type":"integer","minimum":0}}}}},{"type":"string","enum":["CannotConvertJoinCommittee"]},{"type":"string","enum":["EpochConversionOverflow"]},{"type":"string","enum":["CannotConvertCommitteeToCommitteeConfig"]},{"type":"object","required":["UnsupportedFeeToken"],"properties":{"UnsupportedFeeToken":{"type":"object","required":["token_id"],"properties":{"token_id":{"$ref":"#/components/schemas/TokenId"}}}}},{"type":"object","required":["UnsupportedNetworkId"],"properties":{"UnsupportedNetworkId":{"type":"object","required":["expected","received"],"properties":{"expected":{"type":"string"},"received":{"type":"string"}}}}},{"type":"string","enum":["EscrowConfigNotFound"]},{"type":"string","enum":["EscrowJobNotFound"]},{"type":"object","required":["EscrowJobIllegalStateTransition"],"properties":{"EscrowJobIllegalStateTransition":{"type":"object","required":["from","to"],"properties":{"from":{"$ref":"#/components/schemas/EscrowJobStatusRelease20260508"},"to":{"$ref":"#/components/schemas/EscrowJobStatusRelease20260508"}}}}},{"type":"string","enum":["EscrowDescriptionTooLong"]},{"type":"string","enum":["DuplicateEscrowConfigId"]},{"type":"string","enum":["DuplicateEscrowJobId"]}],"description":"FastSet core errors. Only protocol-related errors should be in here."},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Balance":{"type":"string"},"TokenId":{"type":"string"},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobStatusRelease20260508":{"type":"string","enum":["Funded","Submitted","Completed","Refunded"]}}}}
```

## The FaucetDripRequest object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"FaucetDripRequest":{"type":"object","description":"Request body for `POST /v1/faucet-drip`.","required":["recipient","amount"],"properties":{"amount":{"type":"string","description":"Token amount as a decimal string."},"recipient":{"type":"string","description":"Recipient address in bech32m (`fast1…`), hex, or base64 format."},"token_id":{"type":["string","null"],"description":"Optional token ID as a hex-encoded 32-byte value."}}}}}}
```

## The FeeTokenEntry object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"FeeTokenEntry":{"type":"object","description":"An entry in the fee token list: a token that can be used to pay transaction fees,\nalong with the fixed fee amount in that token.","required":["token_id","fixed_amount"],"properties":{"fixed_amount":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"}}}}
```

## The FeeTokenList object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"FeeTokenList":{"type":"object","description":"A list of accepted fee tokens and their fixed fee amounts, plus a default token.\nAn empty `entries` list means no fees are charged (bootstrap mode).","required":["entries","default"],"properties":{"default":{"$ref":"#/components/schemas/TokenId"},"entries":{"type":"array","items":{"$ref":"#/components/schemas/FeeTokenEntry"}}}},"TokenId":{"type":"string"},"FeeTokenEntry":{"type":"object","description":"An entry in the fee token list: a token that can be used to pay transaction fees,\nalong with the fixed fee amount in that token.","required":["token_id","fixed_amount"],"properties":{"fixed_amount":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"Amount":{"type":"string"}}}}
```

## The FixedAmountOrBps object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"Amount":{"type":"string"}}}}
```

## The MintRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"}}}}
```

## The MintRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"}}}}
```

## The MintRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"}}}}
```

## The MultiSig object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0}}}}
```

## The MultiSigConfig object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0}}}}
```

## The NetworkId object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."}}}}
```

## The NetworkInfoResponse object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"NetworkInfoResponse":{"type":"object","description":"Static configuration of the validator's network: the network identifier and the\nlist of tokens accepted for fees together with their fixed fee amounts.","required":["network_id","fees"],"properties":{"fees":{"$ref":"#/components/schemas/FeeTokenList"},"network_id":{"$ref":"#/components/schemas/NetworkId"}}},"FeeTokenList":{"type":"object","description":"A list of accepted fee tokens and their fixed fee amounts, plus a default token.\nAn empty `entries` list means no fees are charged (bootstrap mode).","required":["entries","default"],"properties":{"default":{"$ref":"#/components/schemas/TokenId"},"entries":{"type":"array","items":{"$ref":"#/components/schemas/FeeTokenEntry"}}}},"TokenId":{"type":"string"},"FeeTokenEntry":{"type":"object","description":"An entry in the fee token list: a token that can be used to pay transaction fees,\nalong with the fixed fee amount in that token.","required":["token_id","fixed_amount"],"properties":{"fixed_amount":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"Amount":{"type":"string"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."}}}}
```

## The NetworkInfoResponseSuccess object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"NetworkInfoResponseSuccess":{"type":"object","description":"Schema for `GET /v1/network-info` response.","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/NetworkInfoResponse"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"NetworkInfoResponse":{"type":"object","description":"Static configuration of the validator's network: the network identifier and the\nlist of tokens accepted for fees together with their fixed fee amounts.","required":["network_id","fees"],"properties":{"fees":{"$ref":"#/components/schemas/FeeTokenList"},"network_id":{"$ref":"#/components/schemas/NetworkId"}}},"FeeTokenList":{"type":"object","description":"A list of accepted fee tokens and their fixed fee amounts, plus a default token.\nAn empty `entries` list means no fees are charged (bootstrap mode).","required":["entries","default"],"properties":{"default":{"$ref":"#/components/schemas/TokenId"},"entries":{"type":"array","items":{"$ref":"#/components/schemas/FeeTokenEntry"}}}},"TokenId":{"type":"string"},"FeeTokenEntry":{"type":"object","description":"An entry in the fee token list: a token that can be used to pay transaction fees,\nalong with the fixed fee amount in that token.","required":["token_id","fixed_amount"],"properties":{"fixed_amount":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"Amount":{"type":"string"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The Nonce object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"Nonce":{"type":"integer","format":"int64","minimum":0}}}}
```

## The OperationBundleRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}}}}}
```

## The OperationRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}}}}}
```

## The OperationRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}}}}}
```

## The OperationRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}}}}}
```

## The PendingMultisigSuccess object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"PendingMultisigSuccess":{"type":"object","description":"Schema for `GET /v1/accounts/{address}/pending-multisig-transactions` response.","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TransactionEnvelope"}},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The ProxySubmitTransactionResult object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ProxySubmitTransactionResult":{"oneOf":[{"type":"object","required":["Success"],"properties":{"Success":{"$ref":"#/components/schemas/TransactionCertificate"}}},{"type":"object","required":["IncompleteVerifierSigs"],"properties":{"IncompleteVerifierSigs":{"type":"array"}}},{"type":"object","required":["IncompleteMultiSig"],"properties":{"IncompleteMultiSig":{"type":"array"}}}]},"TransactionCertificate":{"type":"object","description":"A Transaction along with a quorum of validator signatures","required":["envelope","signatures"],"properties":{"envelope":{"$ref":"#/components/schemas/TransactionEnvelope"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}}}}}
```

## The PublicKeyBytes object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}}}}
```

## The Quorum object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"Quorum":{"type":"integer","format":"int64","minimum":0}}}}
```

## The ResponseMeta object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The RestApiError object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"RestApiError":{"oneOf":[{"type":"object","description":"A client-supplied value is malformed or missing.","required":["details","code"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST"]},"details":{"type":"object","description":"A client-supplied value is malformed or missing.","required":["reason"],"properties":{"reason":{"type":"string"}}}}},{"type":"object","description":"The requested resource was not found.","required":["details","code"],"properties":{"code":{"type":"string","enum":["NOT_FOUND"]},"details":{"type":"object","description":"The requested resource was not found.","required":["reason"],"properties":{"reason":{"type":"string"}}}}},{"type":"object","description":"The requested faucet drip amount exceeds the configured threshold.","required":["details","code"],"properties":{"code":{"type":"string","enum":["FAUCET_AMOUNT_EXCEEDED"]},"details":{"type":"object","description":"The requested faucet drip amount exceeds the configured threshold.","required":["requested","threshold"],"properties":{"requested":{"type":"string"},"threshold":{"type":"string"}}}}},{"type":"object","description":"The certificate pagination limit exceeds the server maximum.","required":["details","code"],"properties":{"code":{"type":"string","enum":["TOO_MANY_CERTIFICATES_REQUESTED"]},"details":{"type":"object","description":"The certificate pagination limit exceeds the server maximum.","required":["max_limit"],"properties":{"max_limit":{"type":"integer","format":"int32","minimum":0}}}}},{"type":"object","description":"The faucet is not enabled on this proxy.","required":["details","code"],"properties":{"code":{"type":"string","enum":["FAUCET_DISABLED"]},"details":{"type":"object","description":"The faucet is not enabled on this proxy."}}},{"type":"object","description":"The transaction nonce does not match the expected next nonce.","required":["details","code"],"properties":{"code":{"type":"string","enum":["UNEXPECTED_NONCE"]},"details":{"type":"object","description":"The transaction nonce does not match the expected next nonce.","required":["tx_nonce","expected_nonce"],"properties":{"expected_nonce":{"type":"integer","format":"int64","minimum":0},"tx_nonce":{"type":"integer","format":"int64","minimum":0}}}}},{"type":"object","description":"The supplied verifier signatures are invalid.","required":["details","code"],"properties":{"code":{"type":"string","enum":["VERIFIER_SIGNATURES_INVALID"]},"details":{"type":"object","description":"The supplied verifier signatures are invalid.","required":["reason"],"properties":{"reason":{"type":"string"}}}}},{"type":"object","description":"The faucet is rate-limiting this caller.","required":["details","code"],"properties":{"code":{"type":"string","enum":["FAUCET_THROTTLED"]},"details":{"type":"object","description":"The faucet is rate-limiting this caller.","required":["retry_after_secs"],"properties":{"retry_after_secs":{"type":"integer","format":"int64","minimum":0}}}}},{"type":"object","description":"An internal error occurred (details are intentionally omitted).","required":["details","code"],"properties":{"code":{"type":"string","enum":["INTERNAL_ERROR"]},"details":{"type":"object","description":"An internal error occurred (details are intentionally omitted)."}}},{"type":"object","description":"The upstream validator RPC returned an error.","required":["details","code"],"properties":{"code":{"type":"string","enum":["UPSTREAM_ERROR"]},"details":{"type":"object","description":"The upstream validator RPC returned an error.","required":["upstream_message"],"properties":{"upstream_message":{"type":"string"}}}}},{"type":"object","description":"The caller's IP has exceeded its rate limit.","required":["details","code"],"properties":{"code":{"type":"string","enum":["IP_RATE_LIMITED"]},"details":{"type":"object","description":"The caller's IP has exceeded its rate limit.","required":["retry_after_secs"],"properties":{"retry_after_secs":{"type":"integer","format":"int64","minimum":0}}}}},{"type":"object","description":"The proxy is shutting down and not accepting requests.","required":["details","code"],"properties":{"code":{"type":"string","enum":["SERVICE_UNAVAILABLE"]},"details":{"type":"object","description":"The proxy is shutting down and not accepting requests."}}},{"type":"object","description":"Validator rejected the tx with a structured `FastSetError`.\nAll validator rejections (other than those caught by the proxy's own\npre-flight) flow through this single bucket. The `FastSetError` is\nserialized as-is in the `details` field and auto-documented via\n`ToSchema`.","required":["details","code"],"properties":{"code":{"type":"string","enum":["VALIDATOR_REJECTED"]},"details":{"$ref":"#/components/schemas/FastSetError","description":"Validator rejected the tx with a structured `FastSetError`.\nAll validator rejections (other than those caught by the proxy's own\npre-flight) flow through this single bucket. The `FastSetError` is\nserialized as-is in the `details` field and auto-documented via\n`ToSchema`."}}}],"description":"REST-specific error enum.\n\nEach variant maps to an HTTP status code, a machine-readable code string,\nand a structured `details` JSON object.\n\n- `thiserror::Error` provides the human-readable `message` via `Display`.\n- `Serialize` with adjacently-tagged representation produces `{\"code\": \"…\", \"details\": {…}}`.\n- The `message` field is injected in [`rest_err`] before sending the response."},"FastSetError":{"oneOf":[{"type":"object","required":["InternalError"],"properties":{"InternalError":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},{"type":"object","required":["InvalidSignature"],"properties":{"InvalidSignature":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"signer":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes"}]}}}}},{"type":"object","required":["UnknownSigner"],"properties":{"UnknownSigner":{"type":"object","required":["signer"],"properties":{"signer":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"string","enum":["CannotSign"]},{"type":"string","enum":["CannotJoinCommitteeAlreadyMember"]},{"type":"string","enum":["CannotLeaveCommitteeNotMember"]},{"type":"object","required":["NonSubmittableOperation"],"properties":{"NonSubmittableOperation":{"type":"object","required":["reason"],"properties":{"reason":{"type":"string"}}}}},{"type":"string","enum":["MissingCommitteeInfo"]},{"type":"object","required":["CertificateRequiresQuorum"],"properties":{"CertificateRequiresQuorum":{"type":"object","required":["num_signers","quorum"],"properties":{"num_signers":{"type":"integer","minimum":0},"quorum":{"type":"integer","minimum":0}}}}},{"type":"string","enum":["IncorrectTransferAmount"]},{"type":"object","required":["UnexpectedNonce"],"properties":{"UnexpectedNonce":{"type":"object","required":["expected_nonce","actual_nonce"],"properties":{"actual_nonce":{"$ref":"#/components/schemas/Nonce"},"expected_nonce":{"$ref":"#/components/schemas/Nonce"}}}}},{"type":"object","required":["InsufficientFunding"],"properties":{"InsufficientFunding":{"type":"object","required":["current_balance","needed"],"properties":{"current_balance":{"$ref":"#/components/schemas/Balance"},"needed":{"$ref":"#/components/schemas/Balance"}}}}},{"type":"object","required":["InsufficientFundingForFee"],"properties":{"InsufficientFundingForFee":{"type":"object","required":["current_balance","needed"],"properties":{"current_balance":{"$ref":"#/components/schemas/Balance"},"needed":{"$ref":"#/components/schemas/Balance"},"token_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId"}]}}}}},{"type":"object","required":["PreviousTransactionMustBeConfirmedFirst"],"properties":{"PreviousTransactionMustBeConfirmedFirst":{"type":"object","required":["pending_confirmation"],"properties":{"pending_confirmation":{"$ref":"#/components/schemas/TransactionEnvelope"}}}}},{"type":"object","required":["MissingEarlierConfirmations"],"properties":{"MissingEarlierConfirmations":{"type":"object","required":["current_nonce"],"properties":{"current_nonce":{"$ref":"#/components/schemas/Nonce"}}}}},{"type":"object","required":["UnknownSenderAccount"],"properties":{"UnknownSenderAccount":{"type":"object","required":["address"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"object","required":["CertificateSignerReuse"],"properties":{"CertificateSignerReuse":{"type":"object","required":["address"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"object","required":["CertificateTooYoung"],"properties":{"CertificateTooYoung":{"type":"object","required":["resend_after_nanos"],"properties":{"resend_after_nanos":{"type":"integer","format":"int64","minimum":0}}}}},{"type":"object","required":["CertificateNotFromCurrentEpoch"],"properties":{"CertificateNotFromCurrentEpoch":{"type":"object","required":["current_epoch","received_epoch"],"properties":{"current_epoch":{"type":"integer","format":"int32","minimum":0},"received_epoch":{"type":"integer","format":"int32","minimum":0}}}}},{"type":"object","required":["InvalidNonce"],"properties":{"InvalidNonce":{"type":"object","required":["actual_nonce","limit"],"properties":{"actual_nonce":{"$ref":"#/components/schemas/Nonce"},"limit":{"$ref":"#/components/schemas/Nonce"}}}}},{"type":"string","enum":["NonceOverflow"]},{"type":"string","enum":["NonceUnderflow"]},{"type":"string","enum":["AmountOverflow"]},{"type":"string","enum":["AmountUnderflow"]},{"type":"string","enum":["BalanceOverflow"]},{"type":"string","enum":["BalanceUnderflow"]},{"type":"string","enum":["InvalidTimestampInFuture"]},{"type":"string","enum":["TimestampTooOld"]},{"type":"string","enum":["InvalidDecoding"]},{"type":"string","enum":["InvalidTransactionSender"]},{"type":"string","enum":["InvalidValidatorConfigAddress"]},{"type":"string","enum":["CommitteeAdminCannotSendTransactions"]},{"type":"object","required":["InvalidMinterAddress"],"properties":{"InvalidMinterAddress":{"type":"object","required":["address"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"object","required":["DuplicateOrUselessInfo"],"properties":{"DuplicateOrUselessInfo":{"type":"object","required":["context"],"properties":{"context":{"type":"string"}}}}},{"type":"object","required":["UnauthorizedTx"],"properties":{"UnauthorizedTx":{"type":"object","required":["explanation"],"properties":{"explanation":{"type":"string"}}}}},{"type":"object","required":["UnknownTokenId"],"properties":{"UnknownTokenId":{"type":"object","required":["token_id"],"properties":{"token_id":{"$ref":"#/components/schemas/TokenId"}}}}},{"type":"object","required":["DuplicateTokenId"],"properties":{"DuplicateTokenId":{"type":"object","required":["token_id"],"properties":{"token_id":{"$ref":"#/components/schemas/TokenId"}}}}},{"type":"object","required":["UnexpectedTokenUpdateId"],"properties":{"UnexpectedTokenUpdateId":{"type":"object","required":["token_id","expected_update_id","actual_update_id"],"properties":{"actual_update_id":{"$ref":"#/components/schemas/Nonce"},"expected_update_id":{"$ref":"#/components/schemas/Nonce"},"token_id":{"$ref":"#/components/schemas/TokenId"}}}}},{"type":"string","enum":["InvalidPreviousState"]},{"type":"string","enum":["InvalidStateUpdate"]},{"type":"object","required":["AuthorizedSignersNotPresorted"],"properties":{"AuthorizedSignersNotPresorted":{"type":"object","required":["address"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"object","required":["SignatureNotPresorted"],"properties":{"SignatureNotPresorted":{"type":"object","required":["address"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"}}}}},{"type":"string","enum":["UnsupportedCombination"]},{"type":"string","enum":["CertificateNotfound"]},{"type":"object","required":["WitnessCertificateTimestampMismatch"],"properties":{"WitnessCertificateTimestampMismatch":{"type":"object","required":["expected","actual"],"properties":{"actual":{"type":"integer","minimum":0},"expected":{"type":"integer","minimum":0}}}}},{"type":"string","enum":["CannotConvertJoinCommittee"]},{"type":"string","enum":["EpochConversionOverflow"]},{"type":"string","enum":["CannotConvertCommitteeToCommitteeConfig"]},{"type":"object","required":["UnsupportedFeeToken"],"properties":{"UnsupportedFeeToken":{"type":"object","required":["token_id"],"properties":{"token_id":{"$ref":"#/components/schemas/TokenId"}}}}},{"type":"object","required":["UnsupportedNetworkId"],"properties":{"UnsupportedNetworkId":{"type":"object","required":["expected","received"],"properties":{"expected":{"type":"string"},"received":{"type":"string"}}}}},{"type":"string","enum":["EscrowConfigNotFound"]},{"type":"string","enum":["EscrowJobNotFound"]},{"type":"object","required":["EscrowJobIllegalStateTransition"],"properties":{"EscrowJobIllegalStateTransition":{"type":"object","required":["from","to"],"properties":{"from":{"$ref":"#/components/schemas/EscrowJobStatusRelease20260508"},"to":{"$ref":"#/components/schemas/EscrowJobStatusRelease20260508"}}}}},{"type":"string","enum":["EscrowDescriptionTooLong"]},{"type":"string","enum":["DuplicateEscrowConfigId"]},{"type":"string","enum":["DuplicateEscrowJobId"]}],"description":"FastSet core errors. Only protocol-related errors should be in here."},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Balance":{"type":"string"},"TokenId":{"type":"string"},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobStatusRelease20260508":{"type":"string","enum":["Funded","Submitted","Completed","Refunded"]}}}}
```

## The Signature object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"Signature":{"type":"string"}}}}
```

## The SignatureOrMultiSig object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0}}}}
```

## The State object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"State":{"type":"string"}}}}
```

## The StateInitializationRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"}}}}
```

## The StateInitializationRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"}}}}
```

## The StateInitializationRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"}}}}
```

## The StateKey object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"StateKey":{"type":"string"}}}}
```

## The StateResetRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"StateKey":{"type":"string"},"State":{"type":"string"}}}}
```

## The StateResetRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"StateKey":{"type":"string"},"State":{"type":"string"}}}}
```

## The StateResetRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"StateKey":{"type":"string"},"State":{"type":"string"}}}}
```

## The StateUpdateRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"StateKey":{"type":"string"},"State":{"type":"string"}}}}
```

## The StateUpdateRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"StateKey":{"type":"string"},"State":{"type":"string"}}}}
```

## The StateUpdateRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"StateKey":{"type":"string"},"State":{"type":"string"}}}}
```

## The SubmitTransactionRequest object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"SubmitTransactionRequest":{"type":"object","description":"Request body for `POST /v1/submit-transaction`.\n\nBoth fields are hex-encoded BCS serializations of the respective types.","required":["transaction","signature"],"properties":{"signature":{"type":"string","format":"hex","description":"Hex-encoded BCS bytes of a [SignatureOrMultiSig]."},"transaction":{"type":"string","format":"hex","description":"Hex-encoded BCS bytes of a [VersionedTransaction]."},"witness_certificates":{"type":"array","items":{"type":"string","format":"hex"},"description":"Optional list of hex-encoded BCS bytes of [TransactionCertificate]s to use as witnesses."}}}}}}
```

## The SubmitTransactionSuccess object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"SubmitTransactionSuccess":{"type":"object","description":"Schema for `POST /v1/submit-transaction` response.","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ProxySubmitTransactionResult"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"ProxySubmitTransactionResult":{"oneOf":[{"type":"object","required":["Success"],"properties":{"Success":{"$ref":"#/components/schemas/TransactionCertificate"}}},{"type":"object","required":["IncompleteVerifierSigs"],"properties":{"IncompleteVerifierSigs":{"type":"array"}}},{"type":"object","required":["IncompleteMultiSig"],"properties":{"IncompleteMultiSig":{"type":"array"}}}]},"TransactionCertificate":{"type":"object","description":"A Transaction along with a quorum of validator signatures","required":["envelope","signatures"],"properties":{"envelope":{"$ref":"#/components/schemas/TransactionEnvelope"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The SuccessEnvelope object

````json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"SuccessEnvelope":{"type":"object","description":"Successful response envelope (runtime type).\n\n```json\n{ \"data\": { … }, \"meta\": { \"timestamp\": \"2026-03-16T12:00:00Z\" } }\n```\n\nOpenAPI annotations use [`TypedSuccessEnvelope`] aliases instead so that\nthe generated schema shows the concrete `data` type per endpoint.","required":["data","meta"],"properties":{"data":{"description":"The response payload (structure varies by endpoint)."},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
````

## The TokenCreationRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"UserData":{"type":"string"}}}}
```

## The TokenCreationRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"UserData":{"type":"string"}}}}
```

## The TokenCreationRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"UserData":{"type":"string"}}}}
```

## The TokenId object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenId":{"type":"string"}}}}
```

## The TokenInfoResponse object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenInfoResponse":{"type":"object","required":["requested_token_metadata"],"properties":{"requested_token_metadata":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string"},{"oneOf":[{"type":"null"},{"type":"object","description":"Encodes metadata about a custom token","required":["update_id","admin","token_name","decimals","total_supply","mints"],"properties":{"admin":{"$ref":"#/components/schemas/PublicKeyBytes","description":"the current token admin"},"decimals":{"type":"integer","format":"int32","description":"the number of decimals for this token","minimum":0},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"the authorized minting addresses for this token"},"token_name":{"type":"string","description":"the name of the token"},"total_supply":{"$ref":"#/components/schemas/Amount","description":"the total supply for this token"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"number of management operations applied to some token"}}}]}]}}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Amount":{"type":"string"},"Nonce":{"type":"integer","format":"int64","minimum":0}}}}
```

## The TokenInfoSuccess object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenInfoSuccess":{"type":"object","description":"Schema for `GET /v1/tokens` response.","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/TokenInfoResponse"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"TokenInfoResponse":{"type":"object","required":["requested_token_metadata"],"properties":{"requested_token_metadata":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string"},{"oneOf":[{"type":"null"},{"type":"object","description":"Encodes metadata about a custom token","required":["update_id","admin","token_name","decimals","total_supply","mints"],"properties":{"admin":{"$ref":"#/components/schemas/PublicKeyBytes","description":"the current token admin"},"decimals":{"type":"integer","format":"int32","description":"the number of decimals for this token","minimum":0},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"the authorized minting addresses for this token"},"token_name":{"type":"string","description":"the name of the token"},"total_supply":{"$ref":"#/components/schemas/Amount","description":"the total supply for this token"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"number of management operations applied to some token"}}}]}]}}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Amount":{"type":"string"},"Nonce":{"type":"integer","format":"int64","minimum":0},"ResponseMeta":{"type":"object","description":"Shared metadata included in every API response.","required":["timestamp"],"properties":{"timestamp":{"type":"string","description":"ISO-8601 / RFC-3339 UTC timestamp of when the response was generated."}}}}}}
```

## The TokenManagementRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"Nonce":{"type":"integer","format":"int64","minimum":0},"UserData":{"type":"string"}}}}
```

## The TokenManagementRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"Nonce":{"type":"integer","format":"int64","minimum":0},"UserData":{"type":"string"}}}}
```

## The TokenManagementRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"Nonce":{"type":"integer","format":"int64","minimum":0},"UserData":{"type":"string"}}}}
```

## The TokenMetadata object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenMetadata":{"type":"object","description":"Encodes metadata about a custom token","required":["update_id","admin","token_name","decimals","total_supply","mints"],"properties":{"admin":{"$ref":"#/components/schemas/PublicKeyBytes","description":"the current token admin"},"decimals":{"type":"integer","format":"int32","description":"the number of decimals for this token","minimum":0},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"the authorized minting addresses for this token"},"token_name":{"type":"string","description":"the name of the token"},"total_supply":{"$ref":"#/components/schemas/Amount","description":"the total supply for this token"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"number of management operations applied to some token"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Amount":{"type":"string"},"Nonce":{"type":"integer","format":"int64","minimum":0}}}}
```

## The TokenTransferRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"}}}}
```

## The TokenTransferRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"}}}}
```

## The TokenTransferRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"}}}}
```

## The TransactionCertificate object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TransactionCertificate":{"type":"object","description":"A Transaction along with a quorum of validator signatures","required":["envelope","signatures"],"properties":{"envelope":{"$ref":"#/components/schemas/TransactionEnvelope"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}}}}}
```

## The TransactionEnvelope object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"Signature":{"type":"string"},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}}}}}
```

## The TransactionRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."}}}}
```

## The TransactionRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."}}}}
```

## The TransactionRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."}}}}
```

## The UserData object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"UserData":{"type":"string"}}}}
```

## The ValidatedTransaction object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ValidatedTransaction":{"type":"object","description":"A Transaction along with the signature from one validator","required":["value","validator","signature"],"properties":{"signature":{"$ref":"#/components/schemas/Signature"},"validator":{"$ref":"#/components/schemas/PublicKeyBytes"},"value":{"$ref":"#/components/schemas/TransactionEnvelope"}}},"Signature":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TransactionEnvelope":{"type":"object","description":"A Transaction along with its sender's signature","required":["transaction","signature"],"properties":{"signature":{"$ref":"#/components/schemas/SignatureOrMultiSig"},"transaction":{"$ref":"#/components/schemas/VersionedTransaction"}}},"SignatureOrMultiSig":{"oneOf":[{"type":"object","required":["Signature"],"properties":{"Signature":{"$ref":"#/components/schemas/Signature"}}},{"type":"object","required":["MultiSig"],"properties":{"MultiSig":{"$ref":"#/components/schemas/MultiSig"}}}]},"MultiSig":{"type":"object","required":["config","signatures"],"properties":{"config":{"$ref":"#/components/schemas/MultiSigConfig"},"signatures":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},{"type":"string"}]}}}},"MultiSigConfig":{"type":"object","description":"Together, determines the address of a multisig account.","required":["authorized_signers","quorum","nonce"],"properties":{"authorized_signers":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"The accounts which may sign for a multisig transaction to be accepted"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"Arbitrary data. Useful for creating multiple distinct multisig accounts with the same\ncommittee/quorum."},"quorum":{"$ref":"#/components/schemas/Quorum","description":"The minimum number of accounts that must sign"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"Quorum":{"type":"integer","format":"int64","minimum":0},"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}}}}}
```

## The ValidatorConfigRelease20260319 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}}}}
```

## The ValidatorConfigRelease20260407 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}}}}
```

## The ValidatorConfigRelease20260508 object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}}}}
```

## The VerifierSig object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}}}}
```

## The VersionedTransaction object

```json
{"openapi":"3.1.0","info":{"title":"FastSet Proxy REST API","version":"1.0.0"},"components":{"schemas":{"VersionedTransaction":{"oneOf":[{"type":"object","required":["Release20260319"],"properties":{"Release20260319":{"$ref":"#/components/schemas/TransactionRelease20260319"}}},{"type":"object","required":["Release20260407"],"properties":{"Release20260407":{"$ref":"#/components/schemas/TransactionRelease20260407"}}},{"type":"object","required":["Release20260508"],"properties":{"Release20260508":{"$ref":"#/components/schemas/TransactionRelease20260508"}}}]},"TransactionRelease20260319":{"type":"object","description":"Snapshot of a `release20260319` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claim","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claim":{"$ref":"#/components/schemas/ClaimTypeRelease20260319","description":"Type-dependent data"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimTypeRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}},{"type":"object","description":"Perform several operations","required":["Batch"],"properties":{"Batch":{"$ref":"#/components/schemas/OperationBundleRelease20260319","description":"Perform several operations"}}}],"description":"One of various types of actions that can be packed into a transaction"},"TokenTransferRelease20260319":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"Amount":{"type":"string"},"PublicKeyBytes":{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."},"TokenId":{"type":"string"},"UserData":{"type":"string"},"TokenCreationRelease20260319":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260319":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"Nonce":{"type":"integer","format":"int64","minimum":0},"MintRelease20260319":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260319":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260319":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"State":{"type":"string"},"StateKey":{"type":"string"},"StateUpdateRelease20260319":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260319":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260319","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260319":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"ClaimData":{"type":"string"},"Quorum":{"type":"integer","format":"int64","minimum":0},"VerifierSig":{"type":"object","required":["verifier_addr","sig"],"properties":{"sig":{"$ref":"#/components/schemas/Signature"},"verifier_addr":{"$ref":"#/components/schemas/PublicKeyBytes"}}},"Signature":{"type":"string"},"StateResetRelease20260319":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260319":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260319":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260319"}}},"CommitteeConfigRelease20260319":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319"}}}},"OperationBundleRelease20260319":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260319"}},"OperationRelease20260319":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260319","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260319","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260319","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260319","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260319","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260319","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260319","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260319","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260319","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260319","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260319","description":"Change Committee request"}}}],"description":"One of various types of actions that be put in a multi-operation transaction\nPayload structs are different from the top-level [ClaimType] where we\nneed to support multiple operations with different receivers"},"NetworkId":{"type":"string","description":"A [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) compatible identifier.\n\nNetwork IDs are a fixed set of known constants. Use one of the associated\nconstants (e.g. `NetworkId::DEVNET`) or parse from a string via `TryFrom<&str>`."},"TransactionRelease20260407":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260407","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260407":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260407"}},"OperationRelease20260407":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260407","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260407","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260407","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260407","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260407","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260407","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260407","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260407","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260407","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260407","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260407","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260407":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260407":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260407":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260407":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260407":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260407":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260407":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260407":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260407","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260407":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260407":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260407":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260407":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260407"}}},"CommitteeConfigRelease20260407":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260407"}}}},"EscrowRelease20260407":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260407"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260407"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260407"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260407"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260407"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260407":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"FixedAmountOrBps":{"oneOf":[{"type":"object","required":["Fixed"],"properties":{"Fixed":{"$ref":"#/components/schemas/Amount"}}},{"type":"object","description":"Basis points: 0–10000 (i.e. 100.00%)","required":["Bps"],"properties":{"Bps":{"type":"integer","format":"int32","description":"Basis points: 0–10000 (i.e. 100.00%)","minimum":0}}}],"description":"Represents either a fixed amount or a basis-point percentage"},"EscrowCreateJobRelease20260407":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260407"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260407":{"type":"string"},"EscrowSubmitRelease20260407":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowJobIdRelease20260407":{"type":"string"},"EscrowRejectRelease20260407":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"EscrowCompleteRelease20260407":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260407"}}},"TransactionRelease20260508":{"type":"object","description":"Snapshot of a `release20260407` transaction.\n\nCan be deserialized from BCS bytes stored in the DB and converted to the\ncurrent `Transaction` type.","required":["network_id","sender","nonce","timestamp_nanos","claims","archival"],"properties":{"archival":{"type":"boolean","description":"Whether this transaction should be archived.\nWhen an archived transaction is confirmed on a validator,\nsubsequent is_settled requests to that validator must succeed."},"claims":{"$ref":"#/components/schemas/ClaimsRelease20260508","description":"The claims to execute in this transaction"},"fee_token":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenId","description":"The token to use for paying the transaction fee.\nIf `None`, the native token is used (for new tx versions).\nOld tx versions that lack this field get `None` on upcast,\nand the validator resolves them to the default fee token (e.g. USDC)."}]},"network_id":{"$ref":"#/components/schemas/NetworkId","description":"network id"},"nonce":{"$ref":"#/components/schemas/Nonce","description":"A sequence number. Transactions sent by the same account are ordered by nonce."},"sender":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Address of sender, and intended signer of this transaction"},"timestamp_nanos":{"type":"integer","description":"Nanos since the Unix epoch.","minimum":0}}},"ClaimsRelease20260508":{"type":"array","items":{"$ref":"#/components/schemas/OperationRelease20260508"}},"OperationRelease20260508":{"oneOf":[{"type":"object","description":"Transfer tokens","required":["TokenTransfer"],"properties":{"TokenTransfer":{"$ref":"#/components/schemas/TokenTransferRelease20260508","description":"Transfer tokens"}}},{"type":"object","description":"Create custom token","required":["TokenCreation"],"properties":{"TokenCreation":{"$ref":"#/components/schemas/TokenCreationRelease20260508","description":"Create custom token"}}},{"type":"object","description":"Modify custom token","required":["TokenManagement"],"properties":{"TokenManagement":{"$ref":"#/components/schemas/TokenManagementRelease20260508","description":"Modify custom token"}}},{"type":"object","description":"Mint funds in a custom token","required":["Mint"],"properties":{"Mint":{"$ref":"#/components/schemas/MintRelease20260508","description":"Mint funds in a custom token"}}},{"type":"object","description":"Burn tokens from a custom token","required":["Burn"],"properties":{"Burn":{"$ref":"#/components/schemas/BurnRelease20260508","description":"Burn tokens from a custom token"}}},{"type":"object","description":"Initialize the state of an Ethereum blockchain mirroring account","required":["StateInitialization"],"properties":{"StateInitialization":{"$ref":"#/components/schemas/StateInitializationRelease20260508","description":"Initialize the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Update the state of an Ethereum blockchain mirroring account","required":["StateUpdate"],"properties":{"StateUpdate":{"$ref":"#/components/schemas/StateUpdateRelease20260508","description":"Update the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Submit arbitrary data to be settled on the network","required":["ExternalClaim"],"properties":{"ExternalClaim":{"$ref":"#/components/schemas/ExternalClaimRelease20260508","description":"Submit arbitrary data to be settled on the network"}}},{"type":"object","description":"Reset the state of an Ethereum blockchain mirroring account","required":["StateReset"],"properties":{"StateReset":{"$ref":"#/components/schemas/StateResetRelease20260508","description":"Reset the state of an Ethereum blockchain mirroring account"}}},{"type":"object","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","required":["JoinCommittee"],"properties":{"JoinCommittee":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508","description":"Join Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps"}}},{"type":"string","description":"Leave Committee request\nSince no escrow is currently involved with the requests we do not check\nthe unicity of the requests and just process them in the order of their\ntimestamps","enum":["LeaveCommittee"]},{"type":"object","description":"Change Committee request","required":["ChangeCommittee"],"properties":{"ChangeCommittee":{"$ref":"#/components/schemas/CommitteeChangeRelease20260508","description":"Change Committee request"}}},{"type":"object","description":"Escrow operations for three-party refundable payments","required":["Escrow"],"properties":{"Escrow":{"$ref":"#/components/schemas/EscrowRelease20260508","description":"Escrow operations for three-party refundable payments"}}}],"description":"One of various types of actions that can be placed in a transaction's claims bundle"},"TokenTransferRelease20260508":{"type":"object","description":"Transfer tokens to another address","required":["token_id","recipient","amount","user_data"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to transfer"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID to transfer"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Extra data field to associate with this transfer"}}},"TokenCreationRelease20260508":{"type":"object","description":"Create a new token.\nThe token id is derived from the [Transaction]\nso it depends also on the creator and the [Nonce].","required":["token_name","decimals","initial_amount","mints","user_data"],"properties":{"decimals":{"type":"integer","format":"int32","description":"Power of 10 that should be considered a full unit of this token.\nAn [Amount] is still always in least units.","minimum":0},"initial_amount":{"$ref":"#/components/schemas/Amount","description":"Initial balance, which will be held by the creator of the token."},"mints":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Addresses which will be able to create more of this token"},"token_name":{"type":"string","description":"Human-readable name"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"TokenManagementRelease20260508":{"type":"object","description":"Manage an existing token.","required":["token_id","update_id","mints","user_data"],"properties":{"mints":{"type":"array","items":{"type":"array","items":false,"prefixItems":[{"type":"string","enum":["Add","Remove"]},{"type":"string","description":"A byte sequence that names an entity on or off the FastSet network.\nTypically encoded as an Ed25519 public key."}]},"description":"The minter addresses to be added/removed"},"new_admin":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PublicKeyBytes","description":"The new admin address; preserve existing admin if None"}]},"new_token_name":{"type":["string","null"],"description":"The new human-readable display name; preserve existing name if None"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"The id of the token to be managed"},"update_id":{"$ref":"#/components/schemas/Nonce","description":"The update id for this token (used for sequencing)\nEach update id must be one greater than the last"},"user_data":{"$ref":"#/components/schemas/UserData","description":"Arbitrary userdata attached to this transaction"}}},"MintRelease20260508":{"type":"object","description":"Create more funds of a token.\nThe sender of the [Transaction] must be a current mint of the token.\nWarning: This is not independent of a token management operation that\nremoves the sender of this transaction from the list of mints.","required":["token_id","recipient","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to mint"},"recipient":{"$ref":"#/components/schemas/PublicKeyBytes","description":"Recipient of the new funds"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token.\nThis is calculated using the keccak256 hash over the data encoded in the same way as\nfor signing."}}},"BurnRelease20260508":{"type":"object","description":"Burn tokens of a custom token.\nThe sender of the [Transaction] must hold sufficient balance of the token.","required":["token_id","amount"],"properties":{"amount":{"$ref":"#/components/schemas/Amount","description":"Amount to burn"},"token_id":{"$ref":"#/components/schemas/TokenId","description":"Token ID. This is the hash of the TokenCreation transaction that created the token."}}},"StateInitializationRelease20260508":{"type":"object","description":"Initialize one state cell of a blockchain mirroring account","required":["key","initial_state"],"properties":{"initial_state":{"$ref":"#/components/schemas/State","description":"Initial state"},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to initialize"}}},"StateUpdateRelease20260508":{"type":"object","description":"Update the state of a blockchain mirroring account","required":["key","previous_state","next_state","compute_claim_tx_hash","compute_claim_tx_timestamp"],"properties":{"compute_claim_tx_hash":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"compute_claim_tx_timestamp":{"type":"integer","minimum":0},"key":{"$ref":"#/components/schemas/StateKey","description":"Key to update"},"next_state":{"$ref":"#/components/schemas/State","description":"Next state"},"previous_state":{"$ref":"#/components/schemas/State","description":"Previous state"}}},"ExternalClaimRelease20260508":{"type":"object","description":"Submit arbitrary data along with a quorum of signatures from external verifiers","required":["claim","signatures"],"properties":{"claim":{"$ref":"#/components/schemas/ExternalClaimBodyRelease20260508","description":"The claim itself plus the required verifier quorum"},"signatures":{"type":"array","items":{"$ref":"#/components/schemas/VerifierSig"},"description":"At least `claim.verifier_quorum` signatures over the enclosing `Transaction` (with this field set to the empty list) by members of `claim.verifier_committee`"}}},"ExternalClaimBodyRelease20260508":{"type":"object","required":["verifier_committee","verifier_quorum","claim_data"],"properties":{"claim_data":{"$ref":"#/components/schemas/ClaimData","description":"Arbitrary data that the verifiers are signing."},"verifier_committee":{"type":"array","items":{"$ref":"#/components/schemas/PublicKeyBytes"},"description":"Set of verifiers (regular  FastSet addresses) that can sign for this ExternalClaim"},"verifier_quorum":{"$ref":"#/components/schemas/Quorum","description":"Minimum number of verifiers in `verifier_committee` for which fastset validators will sign\nthis transaction"}}},"StateResetRelease20260508":{"type":"object","description":"Reset the state of a blockchain mirroring account\nThis claim type is a temporary work-around that allows a left behind account to\nbe easily caught up with the target blockchain's tip. In the future this claim type\nwill be dropped and a left-behind mirroring account will need to settle all\nmissed state updates in order to be caught up.","required":["key","reset_state"],"properties":{"key":{"$ref":"#/components/schemas/StateKey","description":"Key to reset"},"reset_state":{"$ref":"#/components/schemas/State","description":"Reset state"}}},"ValidatorConfigRelease20260508":{"type":"object","required":["address","host","rpc_port"],"properties":{"address":{"$ref":"#/components/schemas/PublicKeyBytes"},"host":{"type":"string"},"rpc_port":{"type":"integer","format":"int32","minimum":0}}},"CommitteeChangeRelease20260508":{"type":"object","required":["new_committee","epoch"],"properties":{"epoch":{"type":"integer","format":"int32","minimum":0},"new_committee":{"$ref":"#/components/schemas/CommitteeConfigRelease20260508"}}},"CommitteeConfigRelease20260508":{"type":"object","required":["validators"],"properties":{"validators":{"type":"array","items":{"$ref":"#/components/schemas/ValidatorConfigRelease20260508"}}}},"EscrowRelease20260508":{"oneOf":[{"type":"object","required":["CreateConfig"],"properties":{"CreateConfig":{"$ref":"#/components/schemas/EscrowCreateConfigRelease20260508"}}},{"type":"object","required":["CreateJob"],"properties":{"CreateJob":{"$ref":"#/components/schemas/EscrowCreateJobRelease20260508"}}},{"type":"object","required":["Submit"],"properties":{"Submit":{"$ref":"#/components/schemas/EscrowSubmitRelease20260508"}}},{"type":"object","required":["Reject"],"properties":{"Reject":{"$ref":"#/components/schemas/EscrowRejectRelease20260508"}}},{"type":"object","required":["Complete"],"properties":{"Complete":{"$ref":"#/components/schemas/EscrowCompleteRelease20260508"}}}],"description":"Escrow operations for three-party refundable payments"},"EscrowCreateConfigRelease20260508":{"type":"object","description":"Create an escrow configuration that evaluators publish","required":["token_id","evaluator","evaluation_fee","min_evaluator_fee"],"properties":{"evaluation_fee":{"$ref":"#/components/schemas/FixedAmountOrBps"},"evaluator":{"$ref":"#/components/schemas/PublicKeyBytes"},"min_evaluator_fee":{"$ref":"#/components/schemas/Amount"},"token_id":{"$ref":"#/components/schemas/TokenId"}}},"EscrowCreateJobRelease20260508":{"type":"object","description":"Create a funded escrow job referencing a config","required":["config_id","provider","provider_fee","description"],"properties":{"config_id":{"$ref":"#/components/schemas/EscrowConfigIdRelease20260508"},"description":{"type":"string"},"provider":{"$ref":"#/components/schemas/PublicKeyBytes"},"provider_fee":{"$ref":"#/components/schemas/Amount"}}},"EscrowConfigIdRelease20260508":{"type":"string"},"EscrowSubmitRelease20260508":{"type":"object","description":"Provider submits a deliverable hash for a job","required":["job_id","deliverable"],"properties":{"deliverable":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowJobIdRelease20260508":{"type":"string"},"EscrowRejectRelease20260508":{"type":"object","description":"Evaluator rejects a job -- refunds client, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}},"EscrowCompleteRelease20260508":{"type":"object","description":"Evaluator completes a job -- pays provider, pays evaluator fee","required":["job_id"],"properties":{"job_id":{"$ref":"#/components/schemas/EscrowJobIdRelease20260508"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fast.xyz/api-reference/rest-api/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
