Algorand · Schema

Algod REST API.

JSON Schema definitions extracted from the Algod REST API. OpenAPI specification

BlockchainCryptocurrencyProof-of-StakeDeFiSmart Contracts
View JSON Schema on GitHub

JSON Schema

algorand-algod-schema.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Algod REST API.",
  "description": "JSON Schema definitions extracted from the Algod REST API. OpenAPI specification",
  "definitions": {
    "Account": {
      "description": "Account information at a given round.\n\nDefinition:\ndata/basics/userBalance.go : AccountData\n",
      "properties": {
        "address": {
          "description": "the account public key",
          "type": "string"
        },
        "amount": {
          "description": "\\[algo\\] total number of MicroAlgos in the account",
          "format": "uint64",
          "type": "integer"
        },
        "amount-without-pending-rewards": {
          "description": "specifies the amount of MicroAlgos in the account, without the pending rewards.",
          "format": "uint64",
          "type": "integer"
        },
        "apps-local-state": {
          "description": "\\[appl\\] applications local data stored in this account.\n\nNote the raw object uses `map[int] -> AppLocalState` for this type.",
          "items": {
            "$ref": "#/components/schemas/ApplicationLocalState"
          },
          "type": "array"
        },
        "apps-total-extra-pages": {
          "description": "\\[teap\\] the sum of all extra application program pages for this account.",
          "format": "uint64",
          "type": "integer"
        },
        "apps-total-schema": {
          "$ref": "#/components/schemas/ApplicationStateSchema"
        },
        "assets": {
          "description": "\\[asset\\] assets held by this account.\n\nNote the raw object uses `map[int] -> AssetHolding` for this type.",
          "items": {
            "$ref": "#/components/schemas/AssetHolding"
          },
          "type": "array"
        },
        "auth-addr": {
          "description": "\\[spend\\] the address against which signing should be checked. If empty, the address of the current account is used. This field can be updated in any transaction by setting the RekeyTo field.",
          "type": "string",
          "x-algorand-format": "Address"
        },
        "created-apps": {
          "description": "\\[appp\\] parameters of applications created by this account including app global data.\n\nNote: the raw account uses `map[int] -> AppParams` for this type.",
          "items": {
            "$ref": "#/components/schemas/Application"
          },
          "type": "array"
        },
        "created-assets": {
          "description": "\\[apar\\] parameters of assets created by this account.\n\nNote: the raw account uses `map[int] -> Asset` for this type.",
          "items": {
            "$ref": "#/components/schemas/Asset"
          },
          "type": "array"
        },
        "incentive-eligible": {
          "description": "Whether or not the account can receive block incentives if its balance is in range at proposal time.",
          "type": "boolean"
        },
        "last-heartbeat": {
          "description": "The round in which this account last went online, or explicitly renewed their online status.",
          "type": "integer",
          "x-go-type": "basics.Round"
        },
        "last-proposed": {
          "description": "The round in which this account last proposed the block.",
          "type": "integer",
          "x-go-type": "basics.Round"
        },
        "min-balance": {
          "description": "MicroAlgo balance required by the account.\n\nThe requirement grows based on asset and application usage.",
          "format": "uint64",
          "type": "integer"
        },
        "participation": {
          "$ref": "#/components/schemas/AccountParticipation"
        },
        "pending-rewards": {
          "description": "amount of MicroAlgos of pending rewards in this account.",
          "format": "uint64",
          "type": "integer"
        },
        "reward-base": {
          "description": "\\[ebase\\] used as part of the rewards computation. Only applicable to accounts which are participating.",
          "format": "uint64",
          "type": "integer"
        },
        "rewards": {
          "description": "\\[ern\\] total rewards of MicroAlgos the account has received, including pending rewards.",
          "format": "uint64",
          "type": "integer"
        },
        "round": {
          "description": "The round for which this information is relevant.",
          "type": "integer",
          "x-go-type": "basics.Round"
        },
        "sig-type": {
          "description": "Indicates what type of signature is used by this account, must be one of:\n* sig\n* msig\n* lsig",
          "enum": [
            "sig",
            "msig",
            "lsig"
          ],
          "type": "string"
        },
        "status": {
          "description": "\\[onl\\] delegation status of the account's MicroAlgos\n* Offline - indicates that the associated account is delegated.\n*  Online  - indicates that the associated account used as part of the delegation pool.\n*   NotParticipating - indicates that the associated account is neither a delegator nor a delegate.",
          "type": "string"
        },
        "total-apps-opted-in": {
          "description": "The count of all applications that have been opted in, equivalent to the count of application local data (AppLocalState objects) stored in this account.",
          "format": "uint64",
          "type": "integer"
        },
        "total-assets-opted-in": {
          "description": "The count of all assets that have been opted in, equivalent to the count of AssetHolding objects held by this account.",
          "format": "uint64",
          "type": "integer"
        },
        "total-box-bytes": {
          "description": "\\[tbxb\\] The total number of bytes used by this account's app's box keys and values.",
          "format": "uint64",
          "type": "integer"
        },
        "total-boxes": {
          "description": "\\[tbx\\] The number of existing boxes created by this account's app.",
          "format": "uint64",
          "type": "integer"
        },
        "total-created-apps": {
          "description": "The count of all apps (AppParams objects) created by this account.",
          "format": "uint64",
          "type": "integer"
        },
        "total-created-assets": {
          "description": "The count of all assets (AssetParams objects) created by this account.",
          "format": "uint64",
          "type": "integer"
        }
      },
      "required": [
        "address",
        "amount",
        "amount-without-pending-rewards",
        "min-balance",
        "pending-rewards",
        "rewards",
        "round",
        "status",
        "total-apps-opted-in",
        "total-assets-opted-in",
        "total-created-apps",
        "total-created-assets"
      ],
      "type": "object"
    },
    "AccountApplicationResource": {
      "description": "AccountApplicationResource describes the account's application resource (local state and params if the account is the creator) for a specific application ID.",
      "properties": {
        "app-local-state": {
          "$ref": "#/components/schemas/ApplicationLocalState"
        },
        "created-at-round": {
          "description": "Round when the account opted into or created the application.",
          "type": "integer",
          "x-go-type": "basics.Round"
        },
        "deleted": {
          "description": "Whether the application has been deleted.",
          "type": "boolean"
        },
        "id": {
          "description": "The application ID.",
          "type": "integer",
          "x-go-type": "basics.AppIndex"
        },
        "params": {
          "$ref": "#/components/schemas/ApplicationParams"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "AccountAssetHolding": {
      "description": "AccountAssetHolding describes the account's asset holding and asset parameters (if either exist) for a specific asset ID.",
      "properties": {
        "asset-holding": {
          "$ref": "#/components/schemas/AssetHolding"
        },
        "asset-params": {
          "$ref": "#/components/schemas/AssetParams"
        }
      },
      "required": [
        "asset-holding"
      ],
      "type": "object"
    },
    "AccountParticipation": {
      "description": "AccountParticipation describes the parameters used by this account in consensus protocol.",
      "properties": {
        "selection-participation-key": {
          "description": "\\[sel\\] Selection public key (if any) currently registered for this round.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        },
        "state-proof-key": {
          "description": "\\[stprf\\] Root of the state proof key (if any)",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        },
        "vote-first-valid": {
          "description": "\\[voteFst\\] First round for which this participation is valid.",
          "type": "integer",
          "x-go-type": "basics.Round"
        },
        "vote-key-dilution": {
          "description": "\\[voteKD\\] Number of subkeys in each batch of participation keys.",
          "type": "integer",
          "x-go-type": "uint64"
        },
        "vote-last-valid": {
          "description": "\\[voteLst\\] Last round for which this participation is valid.",
          "type": "integer",
          "x-go-type": "basics.Round"
        },
        "vote-participation-key": {
          "description": "\\[vote\\] root participation public key (if any) currently registered for this round.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        }
      },
      "required": [
        "selection-participation-key",
        "vote-first-valid",
        "vote-key-dilution",
        "vote-last-valid",
        "vote-participation-key"
      ],
      "type": "object"
    },
    "AccountStateDelta": {
      "description": "Application state delta.",
      "properties": {
        "address": {
          "type": "string"
        },
        "delta": {
          "$ref": "#/components/schemas/StateDelta"
        }
      },
      "required": [
        "address",
        "delta"
      ],
      "type": "object"
    },
    "AppCallLogs": {
      "description": "The logged messages from an app call along with the app ID and outer transaction ID. Logs appear in the same order that they were emitted.",
      "properties": {
        "application-index": {
          "description": "The application from which the logs were generated",
          "type": "integer",
          "x-go-type": "basics.AppIndex"
        },
        "logs": {
          "description": "An array of logs",
          "items": {
            "format": "byte",
            "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
            "type": "string"
          },
          "type": "array"
        },
        "txId": {
          "description": "The transaction ID of the outer app call that lead to these logs",
          "type": "string"
        }
      },
      "required": [
        "application-index",
        "logs",
        "txId"
      ],
      "type": "object"
    },
    "Application": {
      "description": "Application index and its parameters",
      "properties": {
        "id": {
          "description": "\\[appidx\\] application index.",
          "type": "integer",
          "x-go-type": "basics.AppIndex"
        },
        "params": {
          "$ref": "#/components/schemas/ApplicationParams"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "ApplicationInitialStates": {
      "description": "An application's initial global/local/box states that were accessed during simulation.",
      "properties": {
        "app-boxes": {
          "$ref": "#/components/schemas/ApplicationKVStorage"
        },
        "app-globals": {
          "$ref": "#/components/schemas/ApplicationKVStorage"
        },
        "app-locals": {
          "description": "An application's initial local states tied to different accounts.",
          "items": {
            "$ref": "#/components/schemas/ApplicationKVStorage"
          },
          "type": "array"
        },
        "id": {
          "description": "Application index.",
          "type": "integer",
          "x-algorand-format": "uint64",
          "x-go-type": "basics.AppIndex"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "ApplicationKVStorage": {
      "description": "An application's global/local/box state.",
      "properties": {
        "account": {
          "description": "The address of the account associated with the local state.",
          "type": "string",
          "x-algorand-format": "Address"
        },
        "kvs": {
          "description": "Key-Value pairs representing application states.",
          "items": {
            "$ref": "#/components/schemas/AvmKeyValue"
          },
          "type": "array"
        }
      },
      "required": [
        "kvs"
      ],
      "type": "object"
    },
    "ApplicationLocalReference": {
      "description": "References an account's local state for an application.",
      "properties": {
        "account": {
          "description": "Address of the account with the local state.",
          "type": "string",
          "x-algorand-format": "Address"
        },
        "app": {
          "description": "Application ID of the local state application.",
          "type": "integer",
          "x-algorand-format": "uint64",
          "x-go-type": "basics.AppIndex"
        }
      },
      "required": [
        "account",
        "app"
      ],
      "type": "object"
    },
    "ApplicationLocalState": {
      "description": "Stores local state associated with an application.",
      "properties": {
        "id": {
          "description": "The application which this local state is for.",
          "type": "integer",
          "x-go-type": "basics.AppIndex"
        },
        "key-value": {
          "$ref": "#/components/schemas/TealKeyValueStore"
        },
        "schema": {
          "$ref": "#/components/schemas/ApplicationStateSchema"
        }
      },
      "required": [
        "id",
        "schema"
      ],
      "type": "object"
    },
    "ApplicationParams": {
      "description": "Stores the global information associated with an application.",
      "properties": {
        "approval-program": {
          "description": "\\[approv\\] approval program.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string",
          "x-algorand-format": "TEALProgram"
        },
        "clear-state-program": {
          "description": "\\[clearp\\] approval program.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string",
          "x-algorand-format": "TEALProgram"
        },
        "creator": {
          "description": "The address that created this application. This is the address where the parameters and global state for this application can be found.",
          "type": "string",
          "x-algorand-format": "Address"
        },
        "extra-program-pages": {
          "description": "\\[epp\\] the amount of extra program pages available to this app.",
          "format": "uint64",
          "type": "integer"
        },
        "global-state": {
          "$ref": "#/components/schemas/TealKeyValueStore"
        },
        "global-state-schema": {
          "$ref": "#/components/schemas/ApplicationStateSchema"
        },
        "local-state-schema": {
          "$ref": "#/components/schemas/ApplicationStateSchema"
        },
        "size-sponsor": {
          "description": "\\[ss\\] the account responsible for extra pages and global state MBR",
          "type": "string",
          "x-algorand-format": "Address"
        },
        "version": {
          "description": "\\[v\\] the number of updates to the application programs",
          "type": "integer",
          "x-go-type": "uint64"
        }
      },
      "required": [
        "approval-program",
        "clear-state-program",
        "creator"
      ],
      "type": "object"
    },
    "ApplicationStateOperation": {
      "description": "An operation against an application's global/local/box state.",
      "properties": {
        "account": {
          "description": "For local state changes, the address of the account associated with the local state.",
          "type": "string",
          "x-algorand-format": "Address"
        },
        "app-state-type": {
          "description": "Type of application state. Value `g` is **global state**, `l` is **local state**, `b` is **boxes**.",
          "type": "string"
        },
        "key": {
          "description": "The key (name) of the global/local/box state.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        },
        "new-value": {
          "$ref": "#/components/schemas/AvmValue"
        },
        "operation": {
          "description": "Operation type. Value `w` is **write**, `d` is **delete**.",
          "type": "string"
        }
      },
      "required": [
        "app-state-type",
        "key",
        "operation"
      ],
      "type": "object"
    },
    "ApplicationStateSchema": {
      "description": "Specifies maximums on the number of each type that may be stored.",
      "properties": {
        "num-byte-slice": {
          "description": "\\[nbs\\] num of byte slices.",
          "format": "uint64",
          "type": "integer"
        },
        "num-uint": {
          "description": "\\[nui\\] num of uints.",
          "format": "uint64",
          "type": "integer"
        }
      },
      "required": [
        "num-byte-slice",
        "num-uint"
      ],
      "type": "object"
    },
    "Asset": {
      "description": "Specifies both the unique identifier and the parameters for an asset",
      "properties": {
        "index": {
          "description": "unique asset identifier",
          "type": "integer",
          "x-go-type": "basics.AssetIndex"
        },
        "params": {
          "$ref": "#/components/schemas/AssetParams"
        }
      },
      "required": [
        "index"
      ],
      "type": "object"
    },
    "AssetHolding": {
      "description": "Describes an asset held by an account.\n\nDefinition:\ndata/basics/userBalance.go : AssetHolding",
      "properties": {
        "amount": {
          "description": "\\[a\\] number of units held.",
          "format": "uint64",
          "type": "integer",
          "x-algorand-format": "uint64"
        },
        "asset-id": {
          "description": "Asset ID of the holding.",
          "type": "integer",
          "x-go-name": "AssetID",
          "x-go-type": "basics.AssetIndex"
        },
        "is-frozen": {
          "description": "\\[f\\] whether or not the holding is frozen.",
          "type": "boolean"
        }
      },
      "required": [
        "amount",
        "asset-id",
        "is-frozen"
      ],
      "type": "object"
    },
    "AssetHoldingReference": {
      "description": "References an asset held by an account.",
      "properties": {
        "account": {
          "description": "Address of the account holding the asset.",
          "type": "string",
          "x-algorand-format": "Address"
        },
        "asset": {
          "description": "Asset ID of the holding.",
          "type": "integer",
          "x-algorand-format": "uint64",
          "x-go-type": "basics.AssetIndex"
        }
      },
      "required": [
        "account",
        "asset"
      ],
      "type": "object"
    },
    "AssetParams": {
      "description": "AssetParams specifies the parameters for an asset.\n\n\\[apar\\] when part of an AssetConfig transaction.\n\nDefinition:\ndata/transactions/asset.go : AssetParams",
      "properties": {
        "clawback": {
          "description": "\\[c\\] Address of account used to clawback holdings of this asset.  If empty, clawback is not permitted.",
          "type": "string"
        },
        "creator": {
          "description": "The address that created this asset. This is the address where the parameters for this asset can be found, and also the address where unwanted asset units can be sent in the worst case.",
          "type": "string"
        },
        "decimals": {
          "description": "\\[dc\\] The number of digits to use after the decimal point when displaying this asset. If 0, the asset is not divisible. If 1, the base unit of the asset is in tenths. If 2, the base unit of the asset is in hundredths, and so on. This value must be between 0 and 19 (inclusive).",
          "format": "uint64",
          "maximum": 19,
          "minimum": 0,
          "type": "integer"
        },
        "default-frozen": {
          "description": "\\[df\\] Whether holdings of this asset are frozen by default.",
          "type": "boolean"
        },
        "freeze": {
          "description": "\\[f\\] Address of account used to freeze holdings of this asset.  If empty, freezing is not permitted.",
          "type": "string"
        },
        "manager": {
          "description": "\\[m\\] Address of account used to manage the keys of this asset and to destroy it.",
          "type": "string"
        },
        "metadata-hash": {
          "description": "\\[am\\] A commitment to some unspecified asset metadata. The format of this metadata is up to the application.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        },
        "name": {
          "description": "\\[an\\] Name of this asset, as supplied by the creator. Included only when the asset name is composed of printable utf-8 characters.",
          "type": "string"
        },
        "name-b64": {
          "description": "Base64 encoded name of this asset, as supplied by the creator.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        },
        "reserve": {
          "description": "\\[r\\] Address of account holding reserve (non-minted) units of this asset.",
          "type": "string"
        },
        "total": {
          "description": "\\[t\\] The total number of units of this asset.",
          "format": "uint64",
          "type": "integer",
          "x-algorand-format": "uint64"
        },
        "unit-name": {
          "description": "\\[un\\] Name of a unit of this asset, as supplied by the creator. Included only when the name of a unit of this asset is composed of printable utf-8 characters.",
          "type": "string"
        },
        "unit-name-b64": {
          "description": "Base64 encoded name of a unit of this asset, as supplied by the creator.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        },
        "url": {
          "description": "\\[au\\] URL where more information about the asset can be retrieved. Included only when the URL is composed of printable utf-8 characters.",
          "type": "string"
        },
        "url-b64": {
          "description": "Base64 encoded URL where more information about the asset can be retrieved.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        }
      },
      "required": [
        "creator",
        "decimals",
        "total"
      ],
      "type": "object"
    },
    "AvmKeyValue": {
      "description": "Represents an AVM key-value pair in an application store.",
      "properties": {
        "key": {
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        },
        "value": {
          "$ref": "#/components/schemas/AvmValue"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "AvmValue": {
      "description": "Represents an AVM value.",
      "properties": {
        "bytes": {
          "description": "bytes value.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        },
        "type": {
          "description": "value type. Value `1` refers to **bytes**, value `2` refers to **uint64**",
          "type": "integer",
          "x-go-type": "uint64"
        },
        "uint": {
          "description": "uint value.",
          "format": "uint64",
          "type": "integer",
          "x-algorand-format": "uint64"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "Box": {
      "description": "Box name and its content.",
      "properties": {
        "name": {
          "description": "The box name, base64 encoded",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        },
        "round": {
          "description": "The round for which this information is relevant",
          "type": "integer",
          "x-go-type": "basics.Round"
        },
        "value": {
          "description": "The box value, base64 encoded.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        }
      },
      "required": [
        "name",
        "round",
        "value"
      ],
      "type": "object"
    },
    "BoxDescriptor": {
      "description": "Box descriptor describes a Box.",
      "properties": {
        "name": {
          "description": "Base64 encoded box name",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        },
        "value": {
          "description": "Base64 encoded box value. Present only when the `values` query parameter is set to true.",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "BoxReference": {
      "description": "References a box of an application.",
      "properties": {
        "app": {
          "description": "Application ID which this box belongs to",
          "type": "integer",
          "x-go-type": "basics.AppIndex"
        },
        "name": {
          "description": "Base64 encoded box name",
          "format": "byte",
          "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
          "type": "string"
        }
      },
      "required": [
        "app",
        "name"
      ],
      "type": "object"
    },
    "BuildVersion": {
      "properties": {
        "branch": {
          "type": "string"
        },
        "build_number": {
          "type": "integer"
        },
        "channel": {
          "type": "string"
        },
        "commit_hash": {
          "type": "string"
        },
        "major": {
          "type": "integer"
        },
        "minor": {
          "type": "integer"
        }
      },
      "required": [
        "branch",
        "build_number",
        "channel",
        "commit_hash",
        "major",
        "minor"
      ],
      "title": "BuildVersion contains the current algod build version information.",
      "type": "object"
    },
    "DebugSettingsProf": {
      "description": "algod mutex and blocking profiling state.",
      "properties": {
        "block-rate": {
          "description": "The rate of blocking events. The profiler aims to sample an average of one blocking event per rate nanoseconds spent blocked. To turn off profiling entirely, pass rate 0.",
          "example": 1000,
          "format": "uint64",
          "type": "integer"
        },
        "mutex-rate": {
          "description": "The rate of mutex events. On average 1/rate events are reported. To turn off profiling entirely, pass rate 0",
          "example": 1000,
          "format": "uint64",
          "type": "integer"
        }
      },
      "title": "algod mutex and blocking profiling state.",
      "type": "object"
    },
    "DryrunRequest": {
      "description": "Request data type for dryrun endpoint. Given the Transactions and simulated ledger state upload, run TEAL scripts and return debugging information.",
      "properties": {
        "accounts": {
          "items": {
            "$ref": "#/components/schemas/Account"
          },
          "type": "array"
        },
        "apps": {
          "items": {
            "$ref": "#/components/schemas/Application"
          },
          "type": "array"
        },
        "latest-timestamp": {
          "description": "LatestTimestamp is available to some TEAL scripts. Defaults to the latest confirmed timestamp this algod is attached to.",
          "minimum": 0,
          "type": "integer",
          "x-go-type": "int64"
        },
        "protocol-version": {
          "description": "ProtocolVersion specifies a specific version string to operate under, otherwise whatever the current protocol of the network this algod is running in.",
          "type": "string"
        },
        "round": {
          "description": "Round is available to some TEAL scripts. Defaults to the current round on the network this algod is attached to.",
          "type": "integer",
          "x-algorand-format": "uint64",
          "x-go-type": "basics.Round"
        },
        "sources": {
          "items": {
            "$ref": "#/components/schemas/DryrunSource"
          },
          "type": "array"
        },
        "txns": {
          "items": {
            "description": "SignedTxn object. Must be canonically encoded.",
            "format": "json",
            "type": "string",
            "x-algorand-format": "SignedTransaction"
          },
          "type": "array"
        }
      },
      "required": [
        "accounts",
        "apps",
        "latest-timestamp",
        "protocol-version",
        "round",
        "sources",
        "txns"
      ],
      "type": "object"
    },
    "DryrunSource": {
      "description": "DryrunSource is TEAL source text that gets uploaded, compiled, and inserted into transactions or application state.",
      "properties": {
        "app-index": {
          "type": "integer",
          "x-algorand-format": "uint64",
          "x-go-type": "basics.AppIndex"
        },
        "field-name": {
          "description": "FieldName is what kind of sources this is. If lsig then it goes into the transactions[this.TxnIndex].LogicSig. If approv or clearp it goes into the Approval Program or Clear State Program of application[this.AppIndex].",
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "txn-index": {
          "type": "integer"
        }
      },
      "required": [
        "app-index",
        "field-name",
        "source",
        "txn-index"
      ],
      "type": "object"
    },
    "DryrunState": {
      "description": "Stores the TEAL eval step data",
      "properties": {
        "error": {
          "description": "Evaluation error if any",
          "type": "string"
        },
        "line": {
          "description": "Line number",
          "type": "integer"
        },
        "pc": {
          "description": "Program counter",
          "type": "integer"
        },
        "scratch": {
          "items": {
            "$ref": "#/components/schemas/TealValue"
          },
          "type": "array"
        },
        "stack": {
          "items": {
            "$ref": "#/components/schemas/TealValue"
          },
          "type": "array"
        }
      },
      "required": [
        "line",
        "pc",
        "stack"
      ],
      "type": "object"
    },
    "DryrunTxnResult": {
      "description": "DryrunTxnResult contains any LogicSig or ApplicationCall progra

# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/algorand/refs/heads/main/json-schema/algorand-algod-schema.json