{
  "openapi": "3.1.0",
  "info": {
    "title": "FastSet Proxy REST API",
    "description": "REST API for the FastSet proxy server.\n\n**Encoding conventions**\n- Addresses are bech32m strings (`fast1…`)\n- All other byte arrays (signatures, token IDs, state keys) are hex-encoded\n- `Amount` values are decimal strings\n- `Balance` values are decimal strings",
    "license": {
      "name": ""
    },
    "version": "1.0.0"
  },
  "paths": {
    "/v1/accounts/{address}": {
      "get": {
        "tags": [
          "accounts"
        ],
        "operationId": "get_account_info",
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "description": "Account address in bech32m (`fast1…`), hex, or base64 format",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token_balances_filter",
            "in": "query",
            "description": "Comma-separated hex-encoded token IDs to include balances for.\nOmit to skip token balances; pass an empty value (`?token_balances_filter=`)\nto request balances for all tokens held.",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "name": "state_key_filter",
            "in": "query",
            "description": "Comma-separated hex-encoded state keys to return.\nOmit to skip state; pass an empty value to return all state keys.",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Account info",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountInfoSuccess"
                }
              }
            }
          },
          "400": {
            "description": "Invalid address or parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "502": {
            "description": "Upstream validator error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          }
        }
      }
    },
    "/v1/accounts/{address}/certificates": {
      "get": {
        "tags": [
          "accounts"
        ],
        "operationId": "get_transaction_certificates",
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "description": "Account address in bech32m (`fast1…`), hex, or base64 format",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from_nonce",
            "in": "query",
            "description": "Starting nonce (inclusive).",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of certificates to return (max 200).",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of transaction certificates",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateListSuccess"
                }
              }
            }
          },
          "400": {
            "description": "Invalid address or parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          }
        }
      }
    },
    "/v1/accounts/{address}/pending-multisig-transactions": {
      "get": {
        "tags": [
          "accounts"
        ],
        "operationId": "get_pending_multisig_transactions",
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "description": "Multisig account address in bech32m (`fast1…`), hex, or base64 format",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Pending multisig transactions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingMultisigSuccess"
                }
              }
            }
          },
          "400": {
            "description": "Invalid address",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "502": {
            "description": "Upstream validator error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          }
        }
      }
    },
    "/v1/certificate/{tx_id}": {
      "get": {
        "tags": [
          "certificates"
        ],
        "operationId": "get_certificate_by_tx_id",
        "parameters": [
          {
            "name": "tx_id",
            "in": "path",
            "description": "Transaction ID in hex format (64 hex characters)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Transaction certificate",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateSuccess"
                }
              }
            }
          },
          "400": {
            "description": "Invalid transaction ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "Certificate not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          }
        }
      }
    },
    "/v1/escrow-jobs": {
      "get": {
        "tags": [
          "escrow"
        ],
        "operationId": "get_escrow_jobs",
        "parameters": [
          {
            "name": "client",
            "in": "query",
            "description": "Filter by client address",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider",
            "in": "query",
            "description": "Filter by provider address",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "evaluator",
            "in": "query",
            "description": "Filter by evaluator address",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter by job status (Funded, Submitted, Completed, Refunded)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "certs",
            "in": "query",
            "description": "Include related certificates",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Escrow jobs found. When `certs=true`, each item includes a `certificates` array; otherwise each item is a flat job object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EscrowJobWithCertsListSuccess"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          }
        }
      }
    },
    "/v1/escrow-jobs/{job_id}": {
      "get": {
        "tags": [
          "escrow"
        ],
        "operationId": "get_escrow_job",
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "description": "Hex-encoded escrow job ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "certs",
            "in": "query",
            "description": "Include related certificates",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Escrow job found. When `certs=true`, `data` includes a `certificates` array; otherwise `data` is a flat job object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EscrowJobWithCertsSuccess"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "Job not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          }
        }
      }
    },
    "/v1/network-info": {
      "get": {
        "tags": [
          "network"
        ],
        "operationId": "get_network_info",
        "responses": {
          "200": {
            "description": "Request succeeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkInfoResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/submit-transaction": {
      "post": {
        "tags": [
          "transactions"
        ],
        "operationId": "submit_transaction",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTransactionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Transaction processed. `data` contains one of:\n- `{\"Success\": <certificate>}` — settled, certificate included\n- `{\"IncompleteVerifierSigs\": []}` — awaiting verifier signatures\n- `{\"IncompleteMultiSig\": []}` — awaiting multi-sig signatures",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmitTransactionSuccess"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or validator rejection (see `error.code`)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "Nonce conflict (proxy pre-flight)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "Invalid verifier signatures",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "502": {
            "description": "Upstream validator error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          }
        }
      }
    },
    "/v1/tokens": {
      "get": {
        "tags": [
          "tokens"
        ],
        "operationId": "get_token_info",
        "parameters": [
          {
            "name": "token_ids",
            "in": "query",
            "description": "Comma-separated hex-encoded token IDs.\nExample: `?token_ids=abcd...,ef01...`",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Token metadata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenInfoSuccess"
                }
              }
            }
          },
          "400": {
            "description": "Invalid token ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          },
          "502": {
            "description": "Upstream validator error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            }
          }
        }
      }
    }
  },
  "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)."
          }
        }
      },
      "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"
          }
        }
      },
      "Amount": {
        "type": "string"
      },
      "Balance": {
        "type": "string"
      },
      "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."
          }
        }
      },
      "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."
          }
        }
      },
      "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."
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "ClaimData": {
        "type": "string"
      },
      "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"
      },
      "ClaimsRelease20260407": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/OperationRelease20260407"
        }
      },
      "ClaimsRelease20260508": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/OperationRelease20260508"
        }
      },
      "CommitteeChangeRelease20260319": {
        "type": "object",
        "required": [
          "new_committee",
          "epoch"
        ],
        "properties": {
          "epoch": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "new_committee": {
            "$ref": "#/components/schemas/CommitteeConfigRelease20260319"
          }
        }
      },
      "CommitteeChangeRelease20260407": {
        "type": "object",
        "required": [
          "new_committee",
          "epoch"
        ],
        "properties": {
          "epoch": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "new_committee": {
            "$ref": "#/components/schemas/CommitteeConfigRelease20260407"
          }
        }
      },
      "CommitteeChangeRelease20260508": {
        "type": "object",
        "required": [
          "new_committee",
          "epoch"
        ],
        "properties": {
          "epoch": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "new_committee": {
            "$ref": "#/components/schemas/CommitteeConfigRelease20260508"
          }
        }
      },
      "CommitteeConfigRelease20260319": {
        "type": "object",
        "required": [
          "validators"
        ],
        "properties": {
          "validators": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidatorConfigRelease20260319"
            }
          }
        }
      },
      "CommitteeConfigRelease20260407": {
        "type": "object",
        "required": [
          "validators"
        ],
        "properties": {
          "validators": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidatorConfigRelease20260407"
            }
          }
        }
      },
      "CommitteeConfigRelease20260508": {
        "type": "object",
        "required": [
          "validators"
        ],
        "properties": {
          "validators": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidatorConfigRelease20260508"
            }
          }
        }
      },
      "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"
          }
        }
      },
      "EscrowCompleteRelease20260407": {
        "type": "object",
        "description": "Evaluator completes a job -- pays provider, pays evaluator fee",
        "required": [
          "job_id"
        ],
        "properties": {
          "job_id": {
            "$ref": "#/components/schemas/EscrowJobIdRelease20260407"
          }
        }
      },
      "EscrowCompleteRelease20260508": {
        "type": "object",
        "description": "Evaluator completes a job -- pays provider, pays evaluator fee",
        "required": [
          "job_id"
        ],
        "properties": {
          "job_id": {
            "$ref": "#/components/schemas/EscrowJobIdRelease20260508"
          }
        }
      },
      "EscrowConfigIdRelease20260407": {
        "type": "string"
      },
      "EscrowConfigIdRelease20260508": {
        "type": "string"
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "EscrowJobIdRelease20260407": {
        "type": "string"
      },
      "EscrowJobIdRelease20260508": {
        "type": "string"
      },
      "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"
          }
        }
      },
      "EscrowJobStatusRelease20260508": {
        "type": "string",
        "enum": [
          "Funded",
          "Submitted",
          "Completed",
          "Refunded"
        ]
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "EscrowRejectRelease20260407": {
        "type": "object",
        "description": "Evaluator rejects a job -- refunds client, pays evaluator fee",
        "required": [
          "job_id"
        ],
        "properties": {
          "job_id": {
            "$ref": "#/components/schemas/EscrowJobIdRelease20260407"
          }
        }
      },
      "EscrowRejectRelease20260508": {
        "type": "object",
        "description": "Evaluator rejects a job -- refunds client, pays evaluator fee",
        "required": [
          "job_id"
        ],
        "properties": {
          "job_id": {
            "$ref": "#/components/schemas/EscrowJobIdRelease20260508"
          }
        }
      },
      "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"
      },
      "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"
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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`"
          }
        }
      },
      "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`"
          }
        }
      },
      "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`"
          }
        }
      },
      "FastSetAddress": {
        "type": "string"
      },
      "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."
      },
      "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."
          }
        }
      },
      "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"
          }
        }
      },
      "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"
            }
          }
        }
      },
      "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"
      },
      "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."
          }
        }
      },
      "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."
          }
        }
      },
      "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."
          }
        }
      },
      "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"
          }
        }
      },
      "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>`."
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "Nonce": {
        "type": "integer",
        "format": "int64",
        "minimum": 0
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
          }
        }
      },
      "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"
              }
            }
          }
        ]
      },
      "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
      },
      "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."
          }
        }
      },
      "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."
      },
      "Signature": {
        "type": "string"
      },
      "SignatureOrMultiSig": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "Signature"
            ],
            "properties": {
              "Signature": {
                "$ref": "#/components/schemas/Signature"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "MultiSig"
            ],
            "properties": {
              "MultiSig": {
                "$ref": "#/components/schemas/MultiSig"
              }
            }
          }
        ]
      },
      "State": {
        "type": "string"
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "StateKey": {
        "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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].",
            "example": "00abcd..."
          },
          "transaction": {
            "type": "string",
            "format": "hex",
            "description": "Hex-encoded BCS bytes of a [VersionedTransaction].",
            "example": "00abcd..."
          },
          "witness_certificates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "hex"
            },
            "description": "Optional list of hex-encoded BCS bytes of [TransactionCertificate]s to use as witnesses."
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "TokenId": {
        "type": "string"
      },
      "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"
                        }
                      }
                    }
                  ]
                }
              ]
            }
          }
        }
      },
      "TokenInfoSuccess": {
        "type": "object",
        "description": "Schema for `GET /v1/tokens` response.",
        "required": [
          "data",
          "meta"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/TokenInfoResponse"
          },
          "meta": {
            "$ref": "#/components/schemas/ResponseMeta"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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
          }
        }
      },
      "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
          }
        }
      },
      "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
          }
        }
      },
      "UserData": {
        "type": "string"
      },
      "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"
          }
        }
      },
      "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
          }
        }
      },
      "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
          }
        }
      },
      "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
          }
        }
      },
      "VerifierSig": {
        "type": "object",
        "required": [
          "verifier_addr",
          "sig"
        ],
        "properties": {
          "sig": {
            "$ref": "#/components/schemas/Signature"
          },
          "verifier_addr": {
            "$ref": "#/components/schemas/PublicKeyBytes"
          }
        }
      },
      "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"
              }
            }
          }
        ]
      }
    }
  },
  "tags": [
    {
      "name": "transactions",
      "description": "Transaction submission"
    },
    {
      "name": "accounts",
      "description": "Account queries"
    },
    {
      "name": "tokens",
      "description": "Token metadata"
    },
    {
      "name": "certificates",
      "description": "Certificate queries"
    },
    {
      "name": "escrow",
      "description": "Escrow job queries"
    }
  ]
}