{
 "openapi": "3.1.0",
 "info": {
  "title": "Priors lab API",
  "version": "1.0.0",
  "description": "The ten draft ERCs (ERC-8458 to ERC-8467), drafts under review, on Robinhood Chain testnet (chain 46630) with a test dollar of no value; mainnet (4663) only in read-only panels. Reads, and unsigned transactions for your own key to sign: the lab holds no key of yours and refuses any chain but 46630. The same tools over MCP at https://lab.priors.trade/mcp. Reference contracts are not audited."
 },
 "servers": [
  {
   "url": "https://lab.priors.trade"
  }
 ],
 "tags": [
  {
   "name": "lab"
  },
  {
   "name": "setup"
  },
  {
   "name": "ERC-8458",
   "description": "Agent Income Statements"
  },
  {
   "name": "ERC-8459",
   "description": "Creator Fee Rights"
  },
  {
   "name": "ERC-8460",
   "description": "Agent Credit Lines"
  },
  {
   "name": "ERC-8461",
   "description": "Agent Default Registry"
  },
  {
   "name": "ERC-8462",
   "description": "Token Launch Declarations"
  },
  {
   "name": "ERC-8463",
   "description": "Pool Liquidity Locks"
  },
  {
   "name": "ERC-8464",
   "description": "Agent Repay-First Payees"
  },
  {
   "name": "ERC-8465",
   "description": "Credit-Matched Liquidity"
  },
  {
   "name": "ERC-8466",
   "description": "Agent Credit History"
  },
  {
   "name": "ERC-8467",
   "description": "Agent Credit Backers"
  }
 ],
 "paths": {
  "/api/lab/prepare/setup/register_identity": {
   "get": {
    "operationId": "prepare_setup_register_identity",
    "tags": [
     "setup"
    ],
    "summary": "Register a testnet identity",
    "description": "Register a testnet identity. Sent by: anyone (the new identity's owner). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_uri",
      "in": "query",
      "required": false,
      "description": "The identity's registration file URL (may be empty)",
      "schema": {
       "type": "string",
       "default": ""
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/setup/mint_test_dollars": {
   "get": {
    "operationId": "prepare_setup_mint_test_dollars",
    "tags": [
     "setup"
    ],
    "summary": "Mint test dollars",
    "description": "Mint test dollars. Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "to",
      "in": "query",
      "required": true,
      "description": "Who receives them",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": false,
      "description": "How many test dollars (at most 1,000 a call) Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5. At most 1000000000 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$",
       "default": "1000"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/setup/approve_test_dollars": {
   "get": {
    "operationId": "prepare_setup_approve_test_dollars",
    "tags": [
     "setup"
    ],
    "summary": "Let a contract take test dollars",
    "description": "Let a contract take test dollars. Sent by: the holder. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "spender",
      "in": "query",
      "required": true,
      "description": "The contract allowed to take them",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/setup/transfer_test_dollars": {
   "get": {
    "operationId": "prepare_setup_transfer_test_dollars",
    "tags": [
     "setup"
    ],
    "summary": "Send test dollars",
    "description": "Send test dollars. Sent by: the holder. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "to",
      "in": "query",
      "required": true,
      "description": "Who receives them",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/setup/balances": {
   "get": {
    "operationId": "read_setup_balances",
    "tags": [
     "setup"
    ],
    "summary": "Test ETH, test dollars and identities of an address",
    "description": "Test ETH, test dollars and identities of an address. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "address",
      "in": "query",
      "required": true,
      "description": "The address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/setup/identity": {
   "get": {
    "operationId": "read_setup_identity",
    "tags": [
     "setup"
    ],
    "summary": "A testnet identity's owner and wallet",
    "description": "A testnet identity's owner and wallet. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity's id An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/setup/allowance": {
   "get": {
    "operationId": "read_setup_allowance",
    "tags": [
     "setup"
    ],
    "summary": "How many test dollars a contract may take",
    "description": "How many test dollars a contract may take. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "owner",
      "in": "query",
      "required": true,
      "description": "The holder",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "spender",
      "in": "query",
      "required": true,
      "description": "The contract",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8458/prove_payment": {
   "get": {
    "operationId": "prepare_8458_prove_payment",
    "tags": [
     "ERC-8458"
    ],
    "summary": "Prove one payment against a statement's root",
    "description": "Prove one payment against a statement's root. Sent by: anyone (a lender or buyer agent). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "root",
      "in": "query",
      "required": true,
      "description": "The statement's Merkle root",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "proof",
      "in": "query",
      "required": false,
      "description": "The proof: 0x hashes separated by commas (empty when the statement holds one payment; the payments read gives it) 0x hashes separated by commas.",
      "schema": {
       "type": "string",
       "pattern": "^(0x[0-9a-fA-F]{64}(,0x[0-9a-fA-F]{64})*)?$",
       "default": ""
      }
     },
     {
      "name": "payment_chain",
      "in": "query",
      "required": false,
      "description": "The payment's chain id",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "46630"
      }
     },
     {
      "name": "asset",
      "in": "query",
      "required": false,
      "description": "The token paid (empty: the lab's test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The paid agent's identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "owner",
      "in": "query",
      "required": true,
      "description": "The agent's owner when paid",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "payer",
      "in": "query",
      "required": true,
      "description": "Who paid",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "pay_to",
      "in": "query",
      "required": true,
      "description": "The address paid (the agentWallet)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "The amount, in the token's base units",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "paid_at",
      "in": "query",
      "required": true,
      "description": "When it was paid (unix seconds)",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "tx_hash",
      "in": "query",
      "required": true,
      "description": "The payment's transaction hash",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "log_index",
      "in": "query",
      "required": true,
      "description": "The Transfer log's index",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8458/post_statement": {
   "get": {
    "operationId": "prepare_8458_post_statement",
    "tags": [
     "ERC-8458"
    ],
    "summary": "Post an income statement (writer)",
    "description": "Post an income statement (writer). Sent by: the statement's writer. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The agent An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "value",
      "in": "query",
      "required": true,
      "description": "The statement's value (cumulative income, base units)",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "value_decimals",
      "in": "query",
      "required": false,
      "description": "The value's decimals At most 18 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "6"
      }
     },
     {
      "name": "feedback_uri",
      "in": "query",
      "required": true,
      "description": "The statement file's data: URI",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "feedback_hash",
      "in": "query",
      "required": true,
      "description": "keccak256 of the file",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8458/verify_payment": {
   "get": {
    "operationId": "read_8458_verify_payment",
    "tags": [
     "ERC-8458"
    ],
    "summary": "Check a payment against a root (no transaction)",
    "description": "Check a payment against a root (no transaction). Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "root",
      "in": "query",
      "required": true,
      "description": "The statement's Merkle root",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "proof",
      "in": "query",
      "required": false,
      "description": "The proof: 0x hashes separated by commas (empty when the statement holds one payment; the payments read gives it) 0x hashes separated by commas.",
      "schema": {
       "type": "string",
       "pattern": "^(0x[0-9a-fA-F]{64}(,0x[0-9a-fA-F]{64})*)?$",
       "default": ""
      }
     },
     {
      "name": "payment_chain",
      "in": "query",
      "required": false,
      "description": "The payment's chain id",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "46630"
      }
     },
     {
      "name": "asset",
      "in": "query",
      "required": false,
      "description": "The token paid (empty: the lab's test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The paid agent's identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "owner",
      "in": "query",
      "required": true,
      "description": "The agent's owner when paid",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "payer",
      "in": "query",
      "required": true,
      "description": "Who paid",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "pay_to",
      "in": "query",
      "required": true,
      "description": "The address paid (the agentWallet)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "The amount, in the token's base units",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "paid_at",
      "in": "query",
      "required": true,
      "description": "When it was paid (unix seconds)",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "tx_hash",
      "in": "query",
      "required": true,
      "description": "The payment's transaction hash",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "log_index",
      "in": "query",
      "required": true,
      "description": "The Transfer log's index",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8458/leaf_hash": {
   "get": {
    "operationId": "read_8458_leaf_hash",
    "tags": [
     "ERC-8458"
    ],
    "summary": "A payment's leaf hash",
    "description": "A payment's leaf hash. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "payment_chain",
      "in": "query",
      "required": false,
      "description": "The payment's chain id",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "46630"
      }
     },
     {
      "name": "asset",
      "in": "query",
      "required": false,
      "description": "The token paid (empty: the lab's test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The paid agent's identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "owner",
      "in": "query",
      "required": true,
      "description": "The agent's owner when paid",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "payer",
      "in": "query",
      "required": true,
      "description": "Who paid",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "pay_to",
      "in": "query",
      "required": true,
      "description": "The address paid (the agentWallet)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "The amount, in the token's base units",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "paid_at",
      "in": "query",
      "required": true,
      "description": "When it was paid (unix seconds)",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "tx_hash",
      "in": "query",
      "required": true,
      "description": "The payment's transaction hash",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "log_index",
      "in": "query",
      "required": true,
      "description": "The Transfer log's index",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8458/statements": {
   "get": {
    "operationId": "read_8458_statements",
    "tags": [
     "ERC-8458"
    ],
    "summary": "A writer's income statements for an agent (testnet)",
    "description": "A writer's income statements for an agent (testnet). Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The agent An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "writer",
      "in": "query",
      "required": false,
      "description": "The writer (empty: the lab writer) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8458/payments": {
   "get": {
    "operationId": "read_8458_payments",
    "tags": [
     "ERC-8458"
    ],
    "summary": "The payments in an agent's latest income statement from a writer, each with its proof for verify_payment and prove_payment (testnet)",
    "description": "The payments in an agent's latest income statement from a writer, each with its proof for verify_payment and prove_payment (testnet). Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The agent An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "writer",
      "in": "query",
      "required": false,
      "description": "The writer (empty: the lab writer) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "statement_tx",
      "in": "query",
      "required": false,
      "description": "The statement's transaction (empty: the writer's latest)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8458/verifier": {
   "get": {
    "operationId": "deploy_8458_verifier",
    "tags": [
     "ERC-8458"
    ],
    "summary": "Your own IncomeStatementVerifier",
    "description": "Deploy your own: Your own IncomeStatementVerifier. Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8459/launch_mock_token": {
   "get": {
    "operationId": "prepare_8459_launch_mock_token",
    "tags": [
     "ERC-8459"
    ],
    "summary": "Launch a mock token on the reference's mock launchpad",
    "description": "Launch a mock token on the reference's mock launchpad. Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "creator",
      "in": "query",
      "required": true,
      "description": "The creator: the first fee recipient",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8459/approve_fee": {
   "get": {
    "operationId": "prepare_8459_approve_fee",
    "tags": [
     "ERC-8459"
    ],
    "summary": "Let the mock launchpad take a trade's fee",
    "description": "Let the mock launchpad take a trade's fee. Sent by: the trader. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8459/trade": {
   "get": {
    "operationId": "prepare_8459_trade",
    "tags": [
     "ERC-8459"
    ],
    "summary": "Trade on the mock launchpad: pay a fee into the stream",
    "description": "Trade on the mock launchpad: pay a fee into the stream. Sent by: anyone (the trader). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "The launched token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "fee",
      "in": "query",
      "required": true,
      "description": "The trade's fee in test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8459/claim": {
   "get": {
    "operationId": "prepare_8459_claim",
    "tags": [
     "ERC-8459"
    ],
    "summary": "Claim the creator fees",
    "description": "Claim the creator fees. Sent by: anyone (they go to the recipient). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "The launched token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "asset",
      "in": "query",
      "required": false,
      "description": "The fee asset (empty: the test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "escrow",
      "in": "query",
      "required": false,
      "description": "Which escrow: mock (behind the reference's mock launchpad) or launchpad (the lab launchpad's)",
      "schema": {
       "type": "string",
       "enum": [
        "mock",
        "launchpad"
       ],
       "default": "mock"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own fee rights contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8459/set_fee_recipient": {
   "get": {
    "operationId": "prepare_8459_set_fee_recipient",
    "tags": [
     "ERC-8459"
    ],
    "summary": "Move the fee stream to a new recipient (pledge it)",
    "description": "Move the fee stream to a new recipient (pledge it). Sent by: the current fee recipient. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "The launched token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "new_recipient",
      "in": "query",
      "required": true,
      "description": "The new recipient (a lender, an ERC-8464 payee)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "escrow",
      "in": "query",
      "required": false,
      "description": "Which escrow: mock (behind the reference's mock launchpad) or launchpad (the lab launchpad's)",
      "schema": {
       "type": "string",
       "enum": [
        "mock",
        "launchpad"
       ],
       "default": "mock"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own fee rights contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8459/approve_launchpad_fee": {
   "get": {
    "operationId": "prepare_8459_approve_launchpad_fee",
    "tags": [
     "ERC-8459"
    ],
    "summary": "Let the lab launchpad take a fee payment",
    "description": "Let the lab launchpad take a fee payment. Sent by: the payer. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8459/pay_fee": {
   "get": {
    "operationId": "prepare_8459_pay_fee",
    "tags": [
     "ERC-8459"
    ],
    "summary": "Pay creator fees on a lab-launched token",
    "description": "Pay creator fees on a lab-launched token. Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "A token the lab launchpad launched",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8459/stream": {
   "get": {
    "operationId": "read_8459_stream",
    "tags": [
     "ERC-8459"
    ],
    "summary": "A token's creator fee stream",
    "description": "A token's creator fee stream. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "The launched token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "asset",
      "in": "query",
      "required": false,
      "description": "The fee asset (empty: the test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "escrow",
      "in": "query",
      "required": false,
      "description": "Which escrow: mock (behind the reference's mock launchpad) or launchpad (the lab launchpad's)",
      "schema": {
       "type": "string",
       "enum": [
        "mock",
        "launchpad"
       ],
       "default": "mock"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own fee rights contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8459/escrow": {
   "get": {
    "operationId": "deploy_8459_escrow",
    "tags": [
     "ERC-8459"
    ],
    "summary": "Your own CreatorFeeEscrow (for your launchpad)",
    "description": "Deploy your own: Your own CreatorFeeEscrow (for your launchpad). Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "launchpad",
      "in": "query",
      "required": true,
      "description": "Your launchpad (the only caller of register and accrue)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "admin",
      "in": "query",
      "required": true,
      "description": "The admin",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "protocol_recipient",
      "in": "query",
      "required": true,
      "description": "Where the protocol share goes",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "creator_share_bps",
      "in": "query",
      "required": false,
      "description": "The creator share, in basis points At most 10000 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "5000"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8460/claim_line": {
   "get": {
    "operationId": "prepare_8460_claim_line",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Claim the identity's self-serve lines (normal and fast)",
    "description": "Claim the identity's self-serve lines (normal and fast). Sent by: the identity's owner. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "Your testnet identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8460/approve_repay": {
   "get": {
    "operationId": "prepare_8460_approve_repay",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Let the line take the repayment",
    "description": "Let the line take the repayment. Sent by: the payer. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which shared line: normal (1-day grace, terms up to 30 days) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own credit line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8460/borrow": {
   "get": {
    "operationId": "prepare_8460_borrow",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Borrow",
    "description": "Borrow. Sent by: the identity's owner or its delegate. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "term",
      "in": "query",
      "required": true,
      "description": "For how long (seconds, or 15m, 7d) A duration: seconds, or with a unit (90s, 15m, 2h, 7d).",
      "schema": {
       "type": "string",
       "pattern": "^[0-9]{1,12}\\s*(s|m|h|d|sec|secs|seconds?|mins?|minutes?|hours?|days?)?$"
      }
     },
     {
      "name": "to",
      "in": "query",
      "required": true,
      "description": "Who receives the loan",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "max_fee",
      "in": "query",
      "required": true,
      "description": "The most fee you accept, in test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which shared line: normal (1-day grace, terms up to 30 days) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own credit line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8460/repay": {
   "get": {
    "operationId": "prepare_8460_repay",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Repay a loan",
    "description": "Repay a loan. Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "loan_id",
      "in": "query",
      "required": true,
      "description": "The loan",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "max_due",
      "in": "query",
      "required": true,
      "description": "The most you pay, in test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which shared line: normal (1-day grace, terms up to 30 days) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own credit line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8460/mark_default": {
   "get": {
    "operationId": "prepare_8460_mark_default",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Mark a loan defaulted",
    "description": "Mark a loan defaulted. Sent by: anyone, once its due date plus grace has passed. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "loan_id",
      "in": "query",
      "required": true,
      "description": "The loan",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which shared line: normal (1-day grace, terms up to 30 days) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own credit line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8460/set_delegate": {
   "get": {
    "operationId": "prepare_8460_set_delegate",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Name a delegate who may borrow for the identity",
    "description": "Name a delegate who may borrow for the identity. Sent by: the identity's owner. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "delegate",
      "in": "query",
      "required": true,
      "description": "The delegate (0x0 to remove)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which shared line: normal (1-day grace, terms up to 30 days) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own credit line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8460/set_line": {
   "get": {
    "operationId": "prepare_8460_set_line",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Set an identity's line (your own line, as its admin)",
    "description": "Set an identity's line (your own line, as its admin). Sent by: your line's admin. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": true,
      "description": "The line, in test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "fee_bps",
      "in": "query",
      "required": true,
      "description": "The fee per 30 days, in basis points At most 10000 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own credit line's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8460/fund_line": {
   "get": {
    "operationId": "prepare_8460_fund_line",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Fund your own line with test dollars",
    "description": "Fund your own line with test dollars. Sent by: the lender. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own credit line's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8460/claimed": {
   "get": {
    "operationId": "read_8460_claimed",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Whether an identity has claimed its lab lines",
    "description": "Whether an identity has claimed its lab lines. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8460/line": {
   "get": {
    "operationId": "read_8460_line",
    "tags": [
     "ERC-8460"
    ],
    "summary": "An identity's line",
    "description": "An identity's line. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which shared line: normal (1-day grace, terms up to 30 days) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own credit line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8460/quote": {
   "get": {
    "operationId": "read_8460_quote",
    "tags": [
     "ERC-8460"
    ],
    "summary": "The fee for a loan",
    "description": "The fee for a loan. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "term",
      "in": "query",
      "required": true,
      "description": "For how long A duration: seconds, or with a unit (90s, 15m, 2h, 7d).",
      "schema": {
       "type": "string",
       "pattern": "^[0-9]{1,12}\\s*(s|m|h|d|sec|secs|seconds?|mins?|minutes?|hours?|days?)?$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which shared line: normal (1-day grace, terms up to 30 days) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own credit line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8460/loan": {
   "get": {
    "operationId": "read_8460_loan",
    "tags": [
     "ERC-8460"
    ],
    "summary": "A loan",
    "description": "A loan. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "loan_id",
      "in": "query",
      "required": true,
      "description": "The loan",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which shared line: normal (1-day grace, terms up to 30 days) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own credit line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8460/is_controller": {
   "get": {
    "operationId": "read_8460_is_controller",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Whether an address may borrow for an identity",
    "description": "Whether an address may borrow for an identity. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "account",
      "in": "query",
      "required": true,
      "description": "The address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which shared line: normal (1-day grace, terms up to 30 days) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own credit line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8460/terms": {
   "get": {
    "operationId": "read_8460_terms",
    "tags": [
     "ERC-8460"
    ],
    "summary": "The line's terms",
    "description": "The line's terms. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which shared line: normal (1-day grace, terms up to 30 days) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own credit line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8460/pool_model": {
   "get": {
    "operationId": "read_8460_pool_model",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Priors' CreditPoolV2 seen through the draft's views (computed by the lab) (mainnet, read-only)",
    "description": "Mainnet (chain 4663), read-only: Priors' CreditPoolV2 seen through the draft's views (computed by the lab).",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": false,
      "description": "A Priors agent id An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$",
       "default": "462"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": false,
      "description": "A loan size for the quote, in base units of the pool's asset",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "10000000"
      }
     },
     {
      "name": "term",
      "in": "query",
      "required": false,
      "description": "A term for the quote A duration: seconds, or with a unit (90s, 15m, 2h, 7d).",
      "schema": {
       "type": "string",
       "pattern": "^[0-9]{1,12}\\s*(s|m|h|d|sec|secs|seconds?|mins?|minutes?|hours?|days?)?$",
       "default": "7d"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The reading.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8460/credit_line": {
   "get": {
    "operationId": "deploy_8460_credit_line",
    "tags": [
     "ERC-8460"
    ],
    "summary": "Your own SimpleCreditLine: you are its lender (admin)",
    "description": "Deploy your own: Your own SimpleCreditLine: you are its lender (admin). Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "admin",
      "in": "query",
      "required": true,
      "description": "The admin (you)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "grace",
      "in": "query",
      "required": false,
      "description": "Grace after the due date A duration: seconds, or with a unit (90s, 15m, 2h, 7d).",
      "schema": {
       "type": "string",
       "pattern": "^[0-9]{1,12}\\s*(s|m|h|d|sec|secs|seconds?|mins?|minutes?|hours?|days?)?$",
       "default": "3d"
      }
     },
     {
      "name": "max_term",
      "in": "query",
      "required": false,
      "description": "The longest term A duration: seconds, or with a unit (90s, 15m, 2h, 7d).",
      "schema": {
       "type": "string",
       "pattern": "^[0-9]{1,12}\\s*(s|m|h|d|sec|secs|seconds?|mins?|minutes?|hours?|days?)?$",
       "default": "30d"
      }
     },
     {
      "name": "asset",
      "in": "query",
      "required": false,
      "description": "The asset lent (empty: the test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "registry",
      "in": "query",
      "required": false,
      "description": "The identity registry (empty: the testnet ERC-8004 one) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8461/report_default": {
   "get": {
    "operationId": "prepare_8461_report_default",
    "tags": [
     "ERC-8461"
    ],
    "summary": "Report a lab loan past due plus grace (marked defaulted and recorded by the lab's reporter)",
    "description": "Report a lab loan past due plus grace (marked defaulted and recorded by the lab's reporter). Sent by: anyone, once the loan is past due plus grace. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "loan_id",
      "in": "query",
      "required": true,
      "description": "The loan on a lab line",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which lab line the loan is on: normal, fast, backed or backed_fast",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast",
        "backed",
        "backed_fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8461/record_default": {
   "get": {
    "operationId": "prepare_8461_record_default",
    "tags": [
     "ERC-8461"
    ],
    "summary": "Record a default (as a reporter)",
    "description": "Record a default (as a reporter). Sent by: a lender's reporter. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "owner",
      "in": "query",
      "required": true,
      "description": "Its owner when the loan was drawn",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "asset",
      "in": "query",
      "required": false,
      "description": "The asset lent (empty: the test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "principal",
      "in": "query",
      "required": true,
      "description": "The principal, in test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "loan_ref",
      "in": "query",
      "required": true,
      "description": "The loan's reference (bytes32, not zero)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own default registry's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8461/record_cure": {
   "get": {
    "operationId": "prepare_8461_record_cure",
    "tags": [
     "ERC-8461"
    ],
    "summary": "Record a cure",
    "description": "Record a cure. Sent by: the record's reporter. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "record_id",
      "in": "query",
      "required": true,
      "description": "The record",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "recovered",
      "in": "query",
      "required": true,
      "description": "What was recovered, in test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own default registry's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8461/void_record": {
   "get": {
    "operationId": "prepare_8461_void_record",
    "tags": [
     "ERC-8461"
    ],
    "summary": "Void a record within the void window",
    "description": "Void a record within the void window. Sent by: the record's reporter or its primary. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "record_id",
      "in": "query",
      "required": true,
      "description": "The record",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own default registry's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8461/set_primary": {
   "get": {
    "operationId": "prepare_8461_set_primary",
    "tags": [
     "ERC-8461"
    ],
    "summary": "Propose a primary (as a reporter)",
    "description": "Propose a primary (as a reporter). Sent by: a reporter. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "primary",
      "in": "query",
      "required": true,
      "description": "The primary",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own default registry's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8461/accept_primary": {
   "get": {
    "operationId": "prepare_8461_accept_primary",
    "tags": [
     "ERC-8461"
    ],
    "summary": "Accept a reporter (as its primary)",
    "description": "Accept a reporter (as its primary). Sent by: the proposed primary. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "reporter",
      "in": "query",
      "required": true,
      "description": "The reporter",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own default registry's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8461/drop_reporter": {
   "get": {
    "operationId": "prepare_8461_drop_reporter",
    "tags": [
     "ERC-8461"
    ],
    "summary": "Drop a reporter (as its primary)",
    "description": "Drop a reporter (as its primary). Sent by: the reporter's primary. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "reporter",
      "in": "query",
      "required": true,
      "description": "The reporter",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own default registry's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8461/agent_defaults": {
   "get": {
    "operationId": "read_8461_agent_defaults",
    "tags": [
     "ERC-8461"
    ],
    "summary": "An identity's defaults, counted against trusted primaries",
    "description": "An identity's defaults, counted against trusted primaries. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "trusted",
      "in": "query",
      "required": false,
      "description": "Trusted primaries, comma-separated (empty: the lab's reporter) Addresses separated by commas. Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^(0x[0-9a-fA-F]{40}(,0x[0-9a-fA-F]{40})*)?$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own default registry's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8461/owner_defaults": {
   "get": {
    "operationId": "read_8461_owner_defaults",
    "tags": [
     "ERC-8461"
    ],
    "summary": "An owner's defaults, counted against trusted primaries",
    "description": "An owner's defaults, counted against trusted primaries. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "owner",
      "in": "query",
      "required": true,
      "description": "The owner",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "trusted",
      "in": "query",
      "required": false,
      "description": "Trusted primaries (empty: the lab's reporter) Addresses separated by commas. Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^(0x[0-9a-fA-F]{40}(,0x[0-9a-fA-F]{40})*)?$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own default registry's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8461/reported": {
   "get": {
    "operationId": "read_8461_reported",
    "tags": [
     "ERC-8461"
    ],
    "summary": "Whether a lab loan's default was recorded, and its record",
    "description": "Whether a lab loan's default was recorded, and its record. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "loan_id",
      "in": "query",
      "required": true,
      "description": "The loan",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which lab line the loan is on: normal, fast, backed or backed_fast",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast",
        "backed",
        "backed_fast"
       ],
       "default": "normal"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8461/records_of_agent": {
   "get": {
    "operationId": "read_8461_records_of_agent",
    "tags": [
     "ERC-8461"
    ],
    "summary": "An identity's records",
    "description": "An identity's records. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "start",
      "in": "query",
      "required": false,
      "description": "From",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "0"
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "At most At most 100 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "20"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own default registry's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8461/record": {
   "get": {
    "operationId": "read_8461_record",
    "tags": [
     "ERC-8461"
    ],
    "summary": "One record",
    "description": "One record. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "record_id",
      "in": "query",
      "required": true,
      "description": "The record",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own default registry's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8461/primary_of": {
   "get": {
    "operationId": "read_8461_primary_of",
    "tags": [
     "ERC-8461"
    ],
    "summary": "A reporter's primary",
    "description": "A reporter's primary. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "reporter",
      "in": "query",
      "required": true,
      "description": "The reporter",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own default registry's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8461/registry": {
   "get": {
    "operationId": "deploy_8461_registry",
    "tags": [
     "ERC-8461"
    ],
    "summary": "Your own AgentDefaultRegistry",
    "description": "Deploy your own: Your own AgentDefaultRegistry. Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "identity_registry",
      "in": "query",
      "required": false,
      "description": "The identity registry (empty: the testnet ERC-8004 one) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8462/launch": {
   "get": {
    "operationId": "prepare_8462_launch",
    "tags": [
     "ERC-8462"
    ],
    "summary": "Launch a test token in one transaction: token, pool, liquidity lock, declaration, fee stream",
    "description": "Launch a test token in one transaction: token, pool, liquidity lock, declaration, fee stream. Sent by: anyone (the creator). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "name",
      "in": "query",
      "required": true,
      "description": "The token's name",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "symbol",
      "in": "query",
      "required": true,
      "description": "Its symbol",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "total_supply",
      "in": "query",
      "required": false,
      "description": "The supply, in whole tokens (18 decimals)",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "1000000"
      }
     },
     {
      "name": "creator_allocation",
      "in": "query",
      "required": false,
      "description": "Whole tokens to the creator at launch (the rest seeds the pool)",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "0"
      }
     },
     {
      "name": "pool_dollars",
      "in": "query",
      "required": false,
      "description": "Test dollars minted into the pool (1 to 1,000) Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5. At most 1000000000 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$",
       "default": "100"
      }
     },
     {
      "name": "unlock_at",
      "in": "query",
      "required": false,
      "description": "Liquidity locked until (unix seconds, +30d, permanent) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$",
       "default": "+30d"
      }
     },
     {
      "name": "fee_recipient",
      "in": "query",
      "required": false,
      "description": "Who receives the creator fees (empty: the creator)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "default": "0x0000000000000000000000000000000000000000"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": false,
      "description": "Your testnet identity to attach (0: none) An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$",
       "default": "0"
      }
     },
     {
      "name": "deadline",
      "in": "query",
      "required": false,
      "description": "Your authorization's deadline (with an identity) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$",
       "default": "0"
      }
     },
     {
      "name": "creator_signature",
      "in": "query",
      "required": false,
      "description": "Your CreatorAuthorization signature (with an identity: read launch_authorization)",
      "schema": {
       "type": "string",
       "pattern": "^0x([0-9a-fA-F]{2})*$",
       "default": "0x"
      }
     },
     {
      "name": "financing_loan_id",
      "in": "query",
      "required": false,
      "description": "A lab loan of your identity that pays the pool's test dollars (0: none; approve the launchpad first)",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "0"
      }
     },
     {
      "name": "financing_line",
      "in": "query",
      "required": false,
      "description": "The lab line that loan is on: normal or fast",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8462/approve_financing": {
   "get": {
    "operationId": "prepare_8462_approve_financing",
    "tags": [
     "ERC-8462"
    ],
    "summary": "Let the lab launchpad take a lab loan's principal for the pool",
    "description": "Let the lab launchpad take a lab loan's principal for the pool. Sent by: the creator. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars (the loan's principal) Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8462/declare_venue_creator": {
   "get": {
    "operationId": "prepare_8462_declare_venue_creator",
    "tags": [
     "ERC-8462"
    ],
    "summary": "Declare a launch as your own venue",
    "description": "Declare a launch as your own venue. Sent by: the venue (the creator signs unless it is the sender). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "The token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "creator",
      "in": "query",
      "required": true,
      "description": "The creator",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": false,
      "description": "The creator's identity (empty: none) An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "deadline",
      "in": "query",
      "required": false,
      "description": "The creator's signature valid until A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$",
       "default": "0"
      }
     },
     {
      "name": "creator_signature",
      "in": "query",
      "required": false,
      "description": "The creator's CreatorAuthorization signature (empty when the creator sends it)",
      "schema": {
       "type": "string",
       "pattern": "^0x([0-9a-fA-F]{2})*$",
       "default": "0x"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own declarations contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8462/declare_allocation": {
   "get": {
    "operationId": "prepare_8462_declare_allocation",
    "tags": [
     "ERC-8462"
    ],
    "summary": "Declare supply allocated outside the sale",
    "description": "Declare supply allocated outside the sale. Sent by: the declaration's venue. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "declaration_id",
      "in": "query",
      "required": true,
      "description": "The declaration",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "holder",
      "in": "query",
      "required": true,
      "description": "Who holds it",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "The amount, in the token's base units",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "vest_start",
      "in": "query",
      "required": true,
      "description": "Vesting starts (unix seconds, +30d) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$"
      }
     },
     {
      "name": "vest_end",
      "in": "query",
      "required": true,
      "description": "Vesting ends A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own declarations contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8462/declare_liquidity": {
   "get": {
    "operationId": "prepare_8462_declare_liquidity",
    "tags": [
     "ERC-8462"
    ],
    "summary": "Declare the lock holding the liquidity, and its financing",
    "description": "Declare the lock holding the liquidity, and its financing. Sent by: the declaration's venue. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "declaration_id",
      "in": "query",
      "required": true,
      "description": "The declaration",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "liquidity_locks",
      "in": "query",
      "required": false,
      "description": "The ERC-8463 locker (empty: the lab's) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "lock_id",
      "in": "query",
      "required": true,
      "description": "The lock",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "lender",
      "in": "query",
      "required": false,
      "description": "Who financed it (empty: nobody)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "default": "0x0000000000000000000000000000000000000000"
      }
     },
     {
      "name": "asset",
      "in": "query",
      "required": false,
      "description": "What the lender lent (empty: none)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "default": "0x0000000000000000000000000000000000000000"
      }
     },
     {
      "name": "financed",
      "in": "query",
      "required": false,
      "description": "How much was financed, in base units",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "0"
      }
     },
     {
      "name": "due_at",
      "in": "query",
      "required": false,
      "description": "Financing due (unix seconds; 0: none) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$",
       "default": "0"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own declarations contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8462/declare_fee_recipient": {
   "get": {
    "operationId": "prepare_8462_declare_fee_recipient",
    "tags": [
     "ERC-8462"
    ],
    "summary": "Declare where creator fees are accounted and who receives them",
    "description": "Declare where creator fees are accounted and who receives them. Sent by: the declaration's venue. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "declaration_id",
      "in": "query",
      "required": true,
      "description": "The declaration",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "fee_rights",
      "in": "query",
      "required": false,
      "description": "The ERC-8459 contract (empty: the lab's escrow) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "recipient",
      "in": "query",
      "required": true,
      "description": "The recipient",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own declarations contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8462/preview_launch": {
   "get": {
    "operationId": "read_8462_preview_launch",
    "tags": [
     "ERC-8462"
    ],
    "summary": "The token and launch id a creator's next launch will have",
    "description": "The token and launch id a creator's next launch will have. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "creator",
      "in": "query",
      "required": true,
      "description": "The creator",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "name",
      "in": "query",
      "required": true,
      "description": "The token's name",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "symbol",
      "in": "query",
      "required": true,
      "description": "Its symbol",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "total_supply",
      "in": "query",
      "required": false,
      "description": "The supply, in whole tokens",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "1000000"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8462/launch_authorization": {
   "get": {
    "operationId": "read_8462_launch_authorization",
    "tags": [
     "ERC-8462"
    ],
    "summary": "The EIP-712 CreatorAuthorization a creator signs to attach its identity to a lab launch",
    "description": "The EIP-712 CreatorAuthorization a creator signs to attach its identity to a lab launch. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "creator",
      "in": "query",
      "required": true,
      "description": "The creator",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "name",
      "in": "query",
      "required": true,
      "description": "The token's name",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "symbol",
      "in": "query",
      "required": true,
      "description": "Its symbol",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "total_supply",
      "in": "query",
      "required": false,
      "description": "The supply, in whole tokens",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "1000000"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The creator's identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "deadline",
      "in": "query",
      "required": true,
      "description": "Valid until (unix seconds, +15m) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8462/launch_of": {
   "get": {
    "operationId": "read_8462_launch_of",
    "tags": [
     "ERC-8462"
    ],
    "summary": "A lab launch: a visitor's test token (not verified), its creator, launch id, pool, lock, identity",
    "description": "A lab launch: a visitor's test token (not verified), its creator, launch id, pool, lock, identity. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "The token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8462/declarations_of": {
   "get": {
    "operationId": "read_8462_declarations_of",
    "tags": [
     "ERC-8462"
    ],
    "summary": "A token's declarations (what a buyer agent reads first)",
    "description": "A token's declarations (what a buyer agent reads first). Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "The token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "start",
      "in": "query",
      "required": false,
      "description": "From",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "0"
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "At most At most 100 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "20"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own declarations contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8462/declarations_by": {
   "get": {
    "operationId": "read_8462_declarations_by",
    "tags": [
     "ERC-8462"
    ],
    "summary": "A creator's declarations",
    "description": "A creator's declarations. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "creator",
      "in": "query",
      "required": true,
      "description": "The creator",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "start",
      "in": "query",
      "required": false,
      "description": "From",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "0"
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "At most At most 100 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "20"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own declarations contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8462/declaration": {
   "get": {
    "operationId": "read_8462_declaration",
    "tags": [
     "ERC-8462"
    ],
    "summary": "One declaration: creator, identity, allocations, liquidity, fee recipients",
    "description": "One declaration: creator, identity, allocations, liquidity, fee recipients. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "declaration_id",
      "in": "query",
      "required": true,
      "description": "The declaration",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own declarations contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8462/next_venue_declaration": {
   "get": {
    "operationId": "read_8462_next_venue_declaration",
    "tags": [
     "ERC-8462"
    ],
    "summary": "The id a venue's next declaration of a token will have",
    "description": "The id a venue's next declaration of a token will have. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "venue",
      "in": "query",
      "required": true,
      "description": "The venue",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "The token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "creator",
      "in": "query",
      "required": true,
      "description": "The creator",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own declarations contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8462/creator_authorization": {
   "get": {
    "operationId": "read_8462_creator_authorization",
    "tags": [
     "ERC-8462"
    ],
    "summary": "The EIP-712 message a creator signs to let a venue attach its identity",
    "description": "The EIP-712 message a creator signs to let a venue attach its identity. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "declaration_id",
      "in": "query",
      "required": true,
      "description": "The declaration",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "venue",
      "in": "query",
      "required": true,
      "description": "The venue",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "The token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "creator",
      "in": "query",
      "required": true,
      "description": "The creator",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The creator's identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "deadline",
      "in": "query",
      "required": true,
      "description": "Valid until (unix seconds, +15m) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own declarations contract's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8462/declarations": {
   "get": {
    "operationId": "deploy_8462_declarations",
    "tags": [
     "ERC-8462"
    ],
    "summary": "Your own LaunchDeclarations over a directory",
    "description": "Deploy your own: Your own LaunchDeclarations over a directory. Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "launch_directory",
      "in": "query",
      "required": false,
      "description": "The ERC-8376 directory (empty: the lab's) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8463/create_pool_token": {
   "get": {
    "operationId": "prepare_8463_create_pool_token",
    "tags": [
     "ERC-8463"
    ],
    "summary": "Create a pool token of your own (LabPoolToken: its whole supply minted once to you, no fee, no setting)",
    "description": "Create a pool token of your own (LabPoolToken: its whole supply minted once to you, no fee, no setting). Sent by: anyone (its first holder). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "token_b",
      "in": "query",
      "required": true,
      "description": "The pool's other token (any token address, such as one you launched)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "token_a",
      "in": "query",
      "required": false,
      "description": "The pool's first token (empty: the lab's test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "supply",
      "in": "query",
      "required": false,
      "description": "How many pool tokens, in base units (18 decimals: 1000000000000000000 is one)",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "1000000000000000000000"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8463/approve_pool_tokens": {
   "get": {
    "operationId": "prepare_8463_approve_pool_tokens",
    "tags": [
     "ERC-8463"
    ],
    "summary": "Let the locker take pool tokens",
    "description": "Let the locker take pool tokens. Sent by: the holder. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "pool_token",
      "in": "query",
      "required": true,
      "description": "The pool token (one of your own, or a launch's after its release)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many, in base units",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own locker's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8463/lock_pool_tokens": {
   "get": {
    "operationId": "prepare_8463_lock_pool_tokens",
    "tags": [
     "ERC-8463"
    ],
    "summary": "Lock pool tokens",
    "description": "Lock pool tokens. Sent by: the holder. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "pool_token",
      "in": "query",
      "required": true,
      "description": "The pool token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many, in base units",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "unlock_at",
      "in": "query",
      "required": true,
      "description": "Until (unix seconds, +7d, permanent) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$"
      }
     },
     {
      "name": "beneficiary",
      "in": "query",
      "required": true,
      "description": "Who receives them at release",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own locker's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8463/mint_position": {
   "get": {
    "operationId": "prepare_8463_mint_position",
    "tags": [
     "ERC-8463"
    ],
    "summary": "Mint a mock position (the reference's MockPositionManager; its pool follows from its tokens and fee)",
    "description": "Mint a mock position (the reference's MockPositionManager; its pool follows from its tokens and fee). Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "to",
      "in": "query",
      "required": true,
      "description": "Who owns it",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "token0",
      "in": "query",
      "required": true,
      "description": "The first token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "token1",
      "in": "query",
      "required": true,
      "description": "The second token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "fee",
      "in": "query",
      "required": false,
      "description": "The fee tier At most 16777215 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "3000"
      }
     },
     {
      "name": "liquidity",
      "in": "query",
      "required": true,
      "description": "Its liquidity",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8463/approve_position": {
   "get": {
    "operationId": "prepare_8463_approve_position",
    "tags": [
     "ERC-8463"
    ],
    "summary": "Let the locker take a position",
    "description": "Let the locker take a position. Sent by: the position's owner. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "token_id",
      "in": "query",
      "required": true,
      "description": "The position",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own locker's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8463/lock_position": {
   "get": {
    "operationId": "prepare_8463_lock_position",
    "tags": [
     "ERC-8463"
    ],
    "summary": "Lock a position",
    "description": "Lock a position. Sent by: the position's owner. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "token_id",
      "in": "query",
      "required": true,
      "description": "The position",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "unlock_at",
      "in": "query",
      "required": true,
      "description": "Until (unix seconds, +7d, permanent) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$"
      }
     },
     {
      "name": "beneficiary",
      "in": "query",
      "required": true,
      "description": "Who receives it at release",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "fee_recipient",
      "in": "query",
      "required": true,
      "description": "Who is paid its fees meanwhile",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own locker's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8463/extend_lock": {
   "get": {
    "operationId": "prepare_8463_extend_lock",
    "tags": [
     "ERC-8463"
    ],
    "summary": "Extend a lock",
    "description": "Extend a lock. Sent by: the lock's beneficiary. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "lock_id",
      "in": "query",
      "required": true,
      "description": "The lock",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "unlock_at",
      "in": "query",
      "required": true,
      "description": "The new, later unlock time A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own locker's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8463/release_lock": {
   "get": {
    "operationId": "prepare_8463_release_lock",
    "tags": [
     "ERC-8463"
    ],
    "summary": "Release a lock that has lapsed",
    "description": "Release a lock that has lapsed. Sent by: anyone, at or after its unlock time. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "lock_id",
      "in": "query",
      "required": true,
      "description": "The lock",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own locker's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8463/collect_fees": {
   "get": {
    "operationId": "prepare_8463_collect_fees",
    "tags": [
     "ERC-8463"
    ],
    "summary": "Collect a locked position's fees",
    "description": "Collect a locked position's fees. Sent by: anyone (they go to the fee recipient). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "lock_id",
      "in": "query",
      "required": true,
      "description": "The lock",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own locker's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8463/accrue_fees": {
   "get": {
    "operationId": "prepare_8463_accrue_fees",
    "tags": [
     "ERC-8463"
    ],
    "summary": "Credit fees to a mock position",
    "description": "Credit fees to a mock position. Sent by: anyone (a mock). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "token_id",
      "in": "query",
      "required": true,
      "description": "The position",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "owed0",
      "in": "query",
      "required": true,
      "description": "Fees in token0",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "owed1",
      "in": "query",
      "required": true,
      "description": "Fees in token1",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8463/lock": {
   "get": {
    "operationId": "read_8463_lock",
    "tags": [
     "ERC-8463"
    ],
    "summary": "One lock",
    "description": "One lock. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "lock_id",
      "in": "query",
      "required": true,
      "description": "The lock",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own locker's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8463/locked_liquidity": {
   "get": {
    "operationId": "read_8463_locked_liquidity",
    "tags": [
     "ERC-8463"
    ],
    "summary": "A pool's locked liquidity, and for a pool token how much of its supply that is",
    "description": "A pool's locked liquidity, and for a pool token how much of its supply that is. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "pool",
      "in": "query",
      "required": true,
      "description": "The pool",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "pool_id",
      "in": "query",
      "required": false,
      "description": "Its id in a singleton manager (empty: none)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$",
       "default": "0x0000000000000000000000000000000000000000000000000000000000000000"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own locker's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8463/pool_of": {
   "get": {
    "operationId": "read_8463_pool_of",
    "tags": [
     "ERC-8463"
    ],
    "summary": "The pool of two tokens and a fee, as the lab's pool factory computes it (no one can set or move it)",
    "description": "The pool of two tokens and a fee, as the lab's pool factory computes it (no one can set or move it). Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "token0",
      "in": "query",
      "required": true,
      "description": "One token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "token1",
      "in": "query",
      "required": true,
      "description": "The other token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "fee",
      "in": "query",
      "required": false,
      "description": "The fee tier At most 16777215 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "3000"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8463/position": {
   "get": {
    "operationId": "read_8463_position",
    "tags": [
     "ERC-8463"
    ],
    "summary": "A mock position: its owner, tokens, fee, liquidity and pool; and the id the next mint gets",
    "description": "A mock position: its owner, tokens, fee, liquidity and pool; and the id the next mint gets. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "token_id",
      "in": "query",
      "required": false,
      "description": "The position (empty: only the next id)",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8463/locks_of_pool": {
   "get": {
    "operationId": "read_8463_locks_of_pool",
    "tags": [
     "ERC-8463"
    ],
    "summary": "A pool's locks",
    "description": "A pool's locks. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "pool",
      "in": "query",
      "required": true,
      "description": "The pool",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "pool_id",
      "in": "query",
      "required": false,
      "description": "Its id (empty: none)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$",
       "default": "0x0000000000000000000000000000000000000000000000000000000000000000"
      }
     },
     {
      "name": "start",
      "in": "query",
      "required": false,
      "description": "From",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "0"
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "At most At most 100 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "20"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own locker's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8463/locker": {
   "get": {
    "operationId": "deploy_8463_locker",
    "tags": [
     "ERC-8463"
    ],
    "summary": "Your own LiquidityLocker over a position manager",
    "description": "Deploy your own: Your own LiquidityLocker over a position manager. Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "position_manager",
      "in": "query",
      "required": false,
      "description": "The position manager (empty: the lab's mock) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8464/deploy_payee": {
   "get": {
    "operationId": "prepare_8464_deploy_payee",
    "tags": [
     "ERC-8464"
    ],
    "summary": "Deploy the identity's payee (at the address shown before)",
    "description": "Deploy the identity's payee (at the address shown before). Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "factory",
      "in": "query",
      "required": false,
      "description": "Which factory: lab (payees settable as the ERC-8004 agentWallet) or reference (the unmodified RepayFirstPayeeFactory)",
      "schema": {
       "type": "string",
       "enum": [
        "lab",
        "reference"
       ],
       "default": "lab"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8464/set_agent_wallet": {
   "get": {
    "operationId": "prepare_8464_set_agent_wallet",
    "tags": [
     "ERC-8464"
    ],
    "summary": "Make the payee the identity's ERC-8004 agentWallet",
    "description": "Make the payee the identity's ERC-8004 agentWallet. Sent by: the identity's owner. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "payee",
      "in": "query",
      "required": true,
      "description": "Its lab payee (deployed by the lab factory)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "deadline",
      "in": "query",
      "required": false,
      "description": "Deadline: at most 5 minutes after the block that includes it (+4m) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$",
       "default": "+240"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8464/track_loan": {
   "get": {
    "operationId": "prepare_8464_track_loan",
    "tags": [
     "ERC-8464"
    ],
    "summary": "Have the lab's line creditor follow a lab loan",
    "description": "Have the lab's line creditor follow a lab loan. Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "loan_id",
      "in": "query",
      "required": true,
      "description": "The loan",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": false,
      "description": "Which shared line: normal (1-day grace, terms up to 30 days) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8464/add_creditor": {
   "get": {
    "operationId": "prepare_8464_add_creditor",
    "tags": [
     "ERC-8464"
    ],
    "summary": "Add a creditor",
    "description": "Add a creditor. Sent by: the identity's owner. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "payee",
      "in": "query",
      "required": true,
      "description": "The payee",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "creditor",
      "in": "query",
      "required": false,
      "description": "The creditor (empty: the lab's line creditor) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "max_share_bps",
      "in": "query",
      "required": false,
      "description": "The most of one sweep it may take, in basis points At most 10000 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "10000"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8464/remove_creditor": {
   "get": {
    "operationId": "prepare_8464_remove_creditor",
    "tags": [
     "ERC-8464"
    ],
    "summary": "Remove a creditor",
    "description": "Remove a creditor. Sent by: the creditor, or the owner once it has no claim. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "payee",
      "in": "query",
      "required": true,
      "description": "The payee",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "creditor",
      "in": "query",
      "required": true,
      "description": "The creditor",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8464/set_beneficiary": {
   "get": {
    "operationId": "prepare_8464_set_beneficiary",
    "tags": [
     "ERC-8464"
    ],
    "summary": "Set where what is left goes",
    "description": "Set where what is left goes. Sent by: the identity's owner. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "payee",
      "in": "query",
      "required": true,
      "description": "The payee",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "beneficiary",
      "in": "query",
      "required": true,
      "description": "The beneficiary (0x0: the owner)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8464/pay": {
   "get": {
    "operationId": "prepare_8464_pay",
    "tags": [
     "ERC-8464"
    ],
    "summary": "Pay the agent at its payee",
    "description": "Pay the agent at its payee. Sent by: a buyer. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "payee",
      "in": "query",
      "required": true,
      "description": "The payee",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8464/sweep": {
   "get": {
    "operationId": "prepare_8464_sweep",
    "tags": [
     "ERC-8464"
    ],
    "summary": "Sweep: creditors first, then the beneficiary",
    "description": "Sweep: creditors first, then the beneficiary. Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "payee",
      "in": "query",
      "required": true,
      "description": "The payee",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "token",
      "in": "query",
      "required": false,
      "description": "The token (empty: the test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8464/set_operator": {
   "get": {
    "operationId": "prepare_8464_set_operator",
    "tags": [
     "ERC-8464"
    ],
    "summary": "Name the payee's job operator (ERC-8183 provider)",
    "description": "Name the payee's job operator (ERC-8183 provider). Sent by: the identity's owner. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "payee",
      "in": "query",
      "required": true,
      "description": "The payee",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "operator",
      "in": "query",
      "required": true,
      "description": "The operator",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8464/payee_address": {
   "get": {
    "operationId": "read_8464_payee_address",
    "tags": [
     "ERC-8464"
    ],
    "summary": "The identity's payee address (before or after it is deployed)",
    "description": "The identity's payee address (before or after it is deployed). Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "factory",
      "in": "query",
      "required": false,
      "description": "Which factory: lab (payees settable as the ERC-8004 agentWallet) or reference (the unmodified RepayFirstPayeeFactory)",
      "schema": {
       "type": "string",
       "enum": [
        "lab",
        "reference"
       ],
       "default": "lab"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8464/payee": {
   "get": {
    "operationId": "read_8464_payee",
    "tags": [
     "ERC-8464"
    ],
    "summary": "A payee: its agent, beneficiary, creditors and balance",
    "description": "A payee: its agent, beneficiary, creditors and balance. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "payee",
      "in": "query",
      "required": true,
      "description": "The payee",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8464/reserved": {
   "get": {
    "operationId": "read_8464_reserved",
    "tags": [
     "ERC-8464"
    ],
    "summary": "What a payee holds for a creditor",
    "description": "What a payee holds for a creditor. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "payee",
      "in": "query",
      "required": true,
      "description": "The payee",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "creditor",
      "in": "query",
      "required": false,
      "description": "The creditor (empty: the lab's line creditor) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "token",
      "in": "query",
      "required": false,
      "description": "The token (empty: the test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8464/owed": {
   "get": {
    "operationId": "read_8464_owed",
    "tags": [
     "ERC-8464"
    ],
    "summary": "What an identity owes the lab's line creditor, and the loans it follows",
    "description": "What an identity owes the lab's line creditor, and the loans it follows. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8464/payee": {
   "get": {
    "operationId": "deploy_8464_payee",
    "tags": [
     "ERC-8464"
    ],
    "summary": "Your own RepayFirstPayee for an identity (the reference, without the factory)",
    "description": "Deploy your own: Your own RepayFirstPayee for an identity (the reference, without the factory). Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "registry",
      "in": "query",
      "required": false,
      "description": "The identity registry (empty: the testnet ERC-8004 one) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8464/factory": {
   "get": {
    "operationId": "deploy_8464_factory",
    "tags": [
     "ERC-8464"
    ],
    "summary": "Your own RepayFirstPayeeFactory",
    "description": "Deploy your own: Your own RepayFirstPayeeFactory. Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "registry",
      "in": "query",
      "required": false,
      "description": "The identity registry (empty: the testnet ERC-8004 one) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/fund": {
   "get": {
    "operationId": "prepare_8465_fund",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Fund your escrow with test dollars (as its lender)",
    "description": "Fund your escrow with test dollars (as its lender). Sent by: the lender. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/mint_base": {
   "get": {
    "operationId": "prepare_8465_mint_base",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Mint your mock base token",
    "description": "Mint your mock base token. Sent by: anyone (at most a million whole tokens a call). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "base",
      "in": "query",
      "required": true,
      "description": "Your mock base token (LabCmlToken)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "to",
      "in": "query",
      "required": true,
      "description": "Who receives it",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many, in base units (18 decimals: 1000000000000000000 is one) At most 1000000000000000000000000 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/set_mock_pool": {
   "get": {
    "operationId": "prepare_8465_set_mock_pool",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Set a pool on your mock position manager",
    "description": "Set a pool on your mock position manager. Sent by: the manager's owner (who deployed it). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "manager",
      "in": "query",
      "required": true,
      "description": "Your mock position manager (LabCmlPositionManager)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "pool",
      "in": "query",
      "required": true,
      "description": "The pool's address (any address you choose names it)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "base",
      "in": "query",
      "required": true,
      "description": "Its base token (your LabCmlToken)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "quote",
      "in": "query",
      "required": false,
      "description": "The quote token (empty: the test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "price",
      "in": "query",
      "required": true,
      "description": "The pool's price: quote units per 1e18 base units (1000000 is one test dollar a whole base token)",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/set_mock_price": {
   "get": {
    "operationId": "prepare_8465_set_mock_price",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Set your mock price feed",
    "description": "Set your mock price feed. Sent by: the feed's owner (who deployed it). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "feed",
      "in": "query",
      "required": true,
      "description": "Your mock price feed (LabCmlPriceFeed)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "answer",
      "in": "query",
      "required": true,
      "description": "The answer (in the feed's decimals: 100000000 is 1.00 with 8)",
      "schema": {
       "type": "string",
       "pattern": "^-?(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "updated_at",
      "in": "query",
      "required": false,
      "description": "Updated at (unix seconds; +0 is now) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$",
       "default": "+0"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/list_pool": {
   "get": {
    "operationId": "prepare_8465_list_pool",
    "tags": [
     "ERC-8465"
    ],
    "summary": "List a pool with its terms (as the lender)",
    "description": "List a pool with its terms (as the lender). Sent by: the lender. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "pool",
      "in": "query",
      "required": true,
      "description": "The pool",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "base",
      "in": "query",
      "required": true,
      "description": "Its base token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "price_feed",
      "in": "query",
      "required": true,
      "description": "The base's price feed",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "status_source",
      "in": "query",
      "required": false,
      "description": "Where trading status is read (empty: trades continuously)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "default": "0x0000000000000000000000000000000000000000"
      }
     },
     {
      "name": "max_price_age",
      "in": "query",
      "required": false,
      "description": "Oldest usable price, seconds",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "3600"
      }
     },
     {
      "name": "limit_bps",
      "in": "query",
      "required": false,
      "description": "Quote limit, bps of the base's value",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "5000"
      }
     },
     {
      "name": "unwind_bps",
      "in": "query",
      "required": false,
      "description": "Unwindable below, bps of what is owed",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "11000"
      }
     },
     {
      "name": "gap_bps",
      "in": "query",
      "required": false,
      "description": "Price fall a new position must survive, bps",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "2000"
      }
     },
     {
      "name": "charge_bps",
      "in": "query",
      "required": false,
      "description": "The lender's charge, bps",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "500"
      }
     },
     {
      "name": "term",
      "in": "query",
      "required": false,
      "description": "Term, seconds",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "2592000"
      }
     },
     {
      "name": "handover_delay",
      "in": "query",
      "required": false,
      "description": "Hand-over delay, seconds (at least 14 days)",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "1209600"
      }
     },
     {
      "name": "base_decimals",
      "in": "query",
      "required": false,
      "description": "The base's decimals At most 255 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "18"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/approve_base": {
   "get": {
    "operationId": "prepare_8465_approve_base",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Let the escrow take your base token",
    "description": "Let the escrow take your base token. Sent by: the holder. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "base",
      "in": "query",
      "required": true,
      "description": "The base token",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many, in base units",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/open": {
   "get": {
    "operationId": "prepare_8465_open",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Open a position: your base, the lender's quote",
    "description": "Open a position: your base, the lender's quote. Sent by: the holder (the identity's owner when one is named). Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "pool",
      "in": "query",
      "required": true,
      "description": "The pool",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "base_in",
      "in": "query",
      "required": true,
      "description": "Your base, in base units",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "quote_to_borrow",
      "in": "query",
      "required": true,
      "description": "The quote side to borrow, in test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "tick_lower",
      "in": "query",
      "required": false,
      "description": "Lower tick",
      "schema": {
       "type": "string",
       "pattern": "^-?(0|[1-9][0-9]*)$",
       "default": "-887220"
      }
     },
     {
      "name": "tick_upper",
      "in": "query",
      "required": false,
      "description": "Upper tick",
      "schema": {
       "type": "string",
       "pattern": "^-?(0|[1-9][0-9]*)$",
       "default": "887220"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": false,
      "description": "Your identity (empty: none) An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$",
       "default": "0"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/apply_fees": {
   "get": {
    "operationId": "prepare_8465_apply_fees",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Apply a position's fees (the lender first)",
    "description": "Apply a position's fees (the lender first). Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "position_id",
      "in": "query",
      "required": true,
      "description": "The position",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/unwind": {
   "get": {
    "operationId": "prepare_8465_unwind",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Unwind a position on the oracle price",
    "description": "Unwind a position on the oracle price. Sent by: anyone, once it is unwindable. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "position_id",
      "in": "query",
      "required": true,
      "description": "The position",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/approve_repay": {
   "get": {
    "operationId": "prepare_8465_approve_repay",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Let the escrow take what a position owes (before close)",
    "description": "Let the escrow take what a position owes (before close). Sent by: the holder. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars (what the position read says it owes, or more) Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/close": {
   "get": {
    "operationId": "prepare_8465_close",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Close a position (repay and take it back)",
    "description": "Close a position (repay and take it back). Sent by: the holder. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "position_id",
      "in": "query",
      "required": true,
      "description": "The position",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/withdraw": {
   "get": {
    "operationId": "prepare_8465_withdraw",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Withdraw unlent test dollars (as the lender)",
    "description": "Withdraw unlent test dollars (as the lender). Sent by: the lender. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "to",
      "in": "query",
      "required": true,
      "description": "Where they go",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8465/set_lender_fallback": {
   "get": {
    "operationId": "prepare_8465_set_lender_fallback",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Set the lender's fallback address",
    "description": "Set the lender's fallback address. Sent by: the lender. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "fallback",
      "in": "query",
      "required": true,
      "description": "The fallback",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8465/position": {
   "get": {
    "operationId": "read_8465_position",
    "tags": [
     "ERC-8465"
    ],
    "summary": "A position and its health",
    "description": "A position and its health. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "position_id",
      "in": "query",
      "required": true,
      "description": "The position",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8465/quote_limit": {
   "get": {
    "operationId": "read_8465_quote_limit",
    "tags": [
     "ERC-8465"
    ],
    "summary": "The most quote a position may borrow for a base amount",
    "description": "The most quote a position may borrow for a base amount. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "pool",
      "in": "query",
      "required": true,
      "description": "The pool",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "base_in",
      "in": "query",
      "required": true,
      "description": "Base, in base units",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8465/terms": {
   "get": {
    "operationId": "read_8465_terms",
    "tags": [
     "ERC-8465"
    ],
    "summary": "A pool's terms",
    "description": "A pool's terms. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own CreditMatchedLiquidity's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "pool",
      "in": "query",
      "required": true,
      "description": "The pool",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8465/base_token": {
   "get": {
    "operationId": "deploy_8465_base_token",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Your mock base token (LabCmlToken: the reference's MockToken, its setters yours alone)",
    "description": "Deploy your own: Your mock base token (LabCmlToken: the reference's MockToken, its setters yours alone). Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "decimals",
      "in": "query",
      "required": false,
      "description": "Its decimals At most 255 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "18"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8465/price_feed": {
   "get": {
    "operationId": "deploy_8465_price_feed",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Your mock price feed (LabCmlPriceFeed: the reference's MockPriceFeed, set by you alone)",
    "description": "Deploy your own: Your mock price feed (LabCmlPriceFeed: the reference's MockPriceFeed, set by you alone). Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "decimals",
      "in": "query",
      "required": false,
      "description": "Its decimals At most 255 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "8"
      }
     },
     {
      "name": "answer",
      "in": "query",
      "required": true,
      "description": "Its first answer (100000000 is 1.00 with 8 decimals)",
      "schema": {
       "type": "string",
       "pattern": "^-?(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8465/position_manager": {
   "get": {
    "operationId": "deploy_8465_position_manager",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Your mock position manager (LabCmlPositionManager: the reference's MockPositionManager, its pools and fees set by you alone)",
    "description": "Deploy your own: Your mock position manager (LabCmlPositionManager: the reference's MockPositionManager, its pools and fees set by you alone). Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8465/escrow": {
   "get": {
    "operationId": "deploy_8465_escrow",
    "tags": [
     "ERC-8465"
    ],
    "summary": "Your own CreditMatchedLiquidity: you are its lender",
    "description": "Deploy your own: Your own CreditMatchedLiquidity: you are its lender. Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "lender",
      "in": "query",
      "required": true,
      "description": "The lender (you)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "manager",
      "in": "query",
      "required": true,
      "description": "Your mock position manager (LabCmlPositionManager)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "fallback",
      "in": "query",
      "required": true,
      "description": "The lender's fallback address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "quote",
      "in": "query",
      "required": false,
      "description": "The quote token (empty: the test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "registry",
      "in": "query",
      "required": false,
      "description": "The identity registry (empty: the testnet ERC-8004 one) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8466/post_credit_entry": {
   "get": {
    "operationId": "prepare_8466_post_credit_entry",
    "tags": [
     "ERC-8466"
    ],
    "summary": "Post a credit entry (as a lender's writer)",
    "description": "Post a credit entry (as a lender's writer). Sent by: a lender's writer key. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The agent An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "tag1",
      "in": "query",
      "required": false,
      "description": "The entry",
      "schema": {
       "type": "string",
       "enum": [
        "credit.statement",
        "credit.defaulted"
       ],
       "default": "credit.statement"
      }
     },
     {
      "name": "value",
      "in": "query",
      "required": false,
      "description": "The entry's value",
      "schema": {
       "type": "string",
       "pattern": "^-?(0|[1-9][0-9]*)$",
       "default": "0"
      }
     },
     {
      "name": "value_decimals",
      "in": "query",
      "required": false,
      "description": "Its decimals At most 18 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "0"
      }
     },
     {
      "name": "feedback_uri",
      "in": "query",
      "required": true,
      "description": "The erc8004-credit/v1 file's data: URI",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "feedback_hash",
      "in": "query",
      "required": true,
      "description": "keccak256 of the file",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8466/testnet_statements": {
   "get": {
    "operationId": "read_8466_testnet_statements",
    "tags": [
     "ERC-8466"
    ],
    "summary": "A writer's credit entries for an agent on testnet",
    "description": "A writer's credit entries for an agent on testnet. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The agent An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "writer",
      "in": "query",
      "required": false,
      "description": "The writer (empty: the lab writer) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8466/credit_history": {
   "get": {
    "operationId": "read_8466_credit_history",
    "tags": [
     "ERC-8466"
    ],
    "summary": "Priors' ERC-8004 credit statements for an agent, each checked against the pools' logs (mainnet, read-only)",
    "description": "Mainnet (chain 4663), read-only: Priors' ERC-8004 credit statements for an agent, each checked against the pools' logs.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": false,
      "description": "A Priors agent id An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$",
       "default": "462"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The reading.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/stake": {
   "get": {
    "operationId": "prepare_8467_stake",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Stake test dollars in your backer",
    "description": "Stake test dollars in your backer. Sent by: the backer's manager. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "backer",
      "in": "query",
      "required": true,
      "description": "Your StakeBacker",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/back": {
   "get": {
    "operationId": "prepare_8467_back",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Back an identity's line, with its owner's signed consent",
    "description": "Back an identity's line, with its owner's signed consent. Sent by: the backer's manager. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "backer",
      "in": "query",
      "required": true,
      "description": "Your StakeBacker",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": true,
      "description": "The line, in test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "deadline",
      "in": "query",
      "required": true,
      "description": "The consent's deadline (as signed) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$"
      }
     },
     {
      "name": "owner_consent",
      "in": "query",
      "required": true,
      "description": "The owner's BackerConsent signature (read consent first)",
      "schema": {
       "type": "string",
       "pattern": "^0x([0-9a-fA-F]{2})*$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "lender",
      "in": "query",
      "required": false,
      "description": "The lender (empty: the lab's backed line chosen above) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/leave": {
   "get": {
    "operationId": "prepare_8467_leave",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Stop backing an identity",
    "description": "Stop backing an identity. Sent by: the backer's manager. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "backer",
      "in": "query",
      "required": true,
      "description": "Your StakeBacker",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "lender",
      "in": "query",
      "required": false,
      "description": "The lender (empty: the lab's backed line chosen above) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/withdraw_stake": {
   "get": {
    "operationId": "prepare_8467_withdraw_stake",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Withdraw stake no line holds",
    "description": "Withdraw stake no line holds. Sent by: the backer's manager. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "backer",
      "in": "query",
      "required": true,
      "description": "Your StakeBacker",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "to",
      "in": "query",
      "required": true,
      "description": "Where it goes",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/sync": {
   "get": {
    "operationId": "prepare_8467_sync",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Sync a backing with the lender",
    "description": "Sync a backing with the lender. Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "backer",
      "in": "query",
      "required": true,
      "description": "The StakeBacker",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "lender",
      "in": "query",
      "required": false,
      "description": "The lender (empty: the lab's backed line chosen above) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/approve_repay": {
   "get": {
    "operationId": "prepare_8467_approve_repay",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Let the backed line take a repayment or a loss payment",
    "description": "Let the backed line take a repayment or a loss payment. Sent by: the payer. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/borrow": {
   "get": {
    "operationId": "prepare_8467_borrow",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Borrow on the backed line",
    "description": "Borrow on the backed line. Sent by: the identity's owner or its delegate. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "term",
      "in": "query",
      "required": true,
      "description": "For how long A duration: seconds, or with a unit (90s, 15m, 2h, 7d).",
      "schema": {
       "type": "string",
       "pattern": "^[0-9]{1,12}\\s*(s|m|h|d|sec|secs|seconds?|mins?|minutes?|hours?|days?)?$"
      }
     },
     {
      "name": "to",
      "in": "query",
      "required": true,
      "description": "Who receives the loan",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "max_fee",
      "in": "query",
      "required": true,
      "description": "The most fee you accept Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/repay": {
   "get": {
    "operationId": "prepare_8467_repay",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Repay a backed loan",
    "description": "Repay a backed loan. Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "loan_id",
      "in": "query",
      "required": true,
      "description": "The loan",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "max_due",
      "in": "query",
      "required": true,
      "description": "The most you pay Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/mark_default": {
   "get": {
    "operationId": "prepare_8467_mark_default",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Mark a backed loan defaulted (the backer pays)",
    "description": "Mark a backed loan defaulted (the backer pays). Sent by: anyone, after due plus grace. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "loan_id",
      "in": "query",
      "required": true,
      "description": "The loan",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/pay_loss": {
   "get": {
    "operationId": "prepare_8467_pay_loss",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Pay what a backer left unpaid of its charge",
    "description": "Pay what a backer left unpaid of its charge. Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "loan_id",
      "in": "query",
      "required": true,
      "description": "The loan",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/recover": {
   "get": {
    "operationId": "prepare_8467_recover",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Pay toward a defaulted loan (recovery)",
    "description": "Pay toward a defaulted loan (recovery). Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "loan_id",
      "in": "query",
      "required": true,
      "description": "The loan",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/pay_backer": {
   "get": {
    "operationId": "prepare_8467_pay_backer",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Pay a backer what recoveries credited it",
    "description": "Pay a backer what recoveries credited it. Sent by: anyone. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "backer",
      "in": "query",
      "required": true,
      "description": "The backer",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/remove_backer": {
   "get": {
    "operationId": "prepare_8467_remove_backer",
    "tags": [
     "ERC-8467"
    ],
    "summary": "End an identity's backing",
    "description": "End an identity's backing. Sent by: its backer or its owner, with no active backed loan. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/revoke_consents": {
   "get": {
    "operationId": "prepare_8467_revoke_consents",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Void every unused consent",
    "description": "Void every unused consent. Sent by: the identity's owner. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/set_delegate": {
   "get": {
    "operationId": "prepare_8467_set_delegate",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Name a delegate who may borrow for the identity",
    "description": "Name a delegate who may borrow for the identity. Sent by: the identity's owner. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "delegate",
      "in": "query",
      "required": true,
      "description": "The delegate (0x0 to remove)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/prepare/8467/fund_line": {
   "get": {
    "operationId": "prepare_8467_fund_line",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Fund your own backed line with test dollars",
    "description": "Fund your own backed line with test dollars. Sent by: the lender. Returns an unsigned transaction for Robinhood Chain testnet (chain 46630) to sign with your own key; the lab signs and sends nothing.",
    "parameters": [
     {
      "name": "amount",
      "in": "query",
      "required": true,
      "description": "How many test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": true,
      "description": "Your own backed line's address",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Transaction"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8467/consent": {
   "get": {
    "operationId": "read_8467_consent",
    "tags": [
     "ERC-8467"
    ],
    "summary": "The EIP-712 BackerConsent the identity's owner signs (chain 46630)",
    "description": "The EIP-712 BackerConsent the identity's owner signs (chain 46630). Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "backer",
      "in": "query",
      "required": true,
      "description": "The backer",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "line",
      "in": "query",
      "required": true,
      "description": "The line, in test dollars Test dollars of the lab's test token (6 decimals, no value), e.g. 10 or 2.5.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
      }
     },
     {
      "name": "deadline",
      "in": "query",
      "required": true,
      "description": "Valid until (unix seconds, +1h) A unix time in seconds, +duration from now (+3600, +15m, +7d), or permanent.",
      "schema": {
       "type": "string",
       "pattern": "^([0-9]{1,20}|\\+[0-9]{1,12}\\s*(s|m|h|d)?|permanent|never)$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8467/backing": {
   "get": {
    "operationId": "read_8467_backing",
    "tags": [
     "ERC-8467"
    ],
    "summary": "An identity's backer and line",
    "description": "An identity's backer and line. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8467/loan": {
   "get": {
    "operationId": "read_8467_loan",
    "tags": [
     "ERC-8467"
    ],
    "summary": "A backed loan, and its loss",
    "description": "A backed loan, and its loss. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "loan_id",
      "in": "query",
      "required": true,
      "description": "The loan",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8467/backer": {
   "get": {
    "operationId": "read_8467_backer",
    "tags": [
     "ERC-8467"
    ],
    "summary": "A StakeBacker: its manager, stake and lines",
    "description": "A StakeBacker: its manager, stake and lines. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "backer",
      "in": "query",
      "required": true,
      "description": "The StakeBacker",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8467/backer_line": {
   "get": {
    "operationId": "read_8467_backer_line",
    "tags": [
     "ERC-8467"
    ],
    "summary": "A StakeBacker's record of one backing",
    "description": "A StakeBacker's record of one backing. Read on chain 46630; nothing is signed.",
    "parameters": [
     {
      "name": "backer",
      "in": "query",
      "required": true,
      "description": "The StakeBacker",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "agent_id",
      "in": "query",
      "required": true,
      "description": "The identity An ERC-8004 identity id.",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*)$"
      }
     },
     {
      "name": "backed_line",
      "in": "query",
      "required": false,
      "description": "Which shared backed line: normal (1-day grace) or fast (5-minute grace, terms up to 10 minutes)",
      "schema": {
       "type": "string",
       "enum": [
        "normal",
        "fast"
       ],
       "default": "normal"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "description": "Your own backed line's address (empty: the lab's shared one)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "What the chain answered, decoded.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/read/8467/backers": {
   "get": {
    "operationId": "read_8467_backers",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Priors' live backers in the draft's terms (backer, line, stake, loss) (mainnet, read-only)",
    "description": "Mainnet (chain 4663), read-only: Priors' live backers in the draft's terms (backer, line, stake, loss).",
    "parameters": [
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "At most At most 500 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "50"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The reading.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ReadResult"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8467/stake_backer": {
   "get": {
    "operationId": "deploy_8467_stake_backer",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Your own StakeBacker: you are its manager",
    "description": "Deploy your own: Your own StakeBacker: you are its manager. Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "manager",
      "in": "query",
      "required": true,
      "description": "The manager (you)",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "asset",
      "in": "query",
      "required": false,
      "description": "The asset (empty: the test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/deploy/8467/backed_line": {
   "get": {
    "operationId": "deploy_8467_backed_line",
    "tags": [
     "ERC-8467"
    ],
    "summary": "Your own BackedCreditLine: you lend",
    "description": "Deploy your own: Your own BackedCreditLine: you lend. Returns an unsigned contract-creation transaction (to: null) for chain 46630, from the reference's pinned build.",
    "parameters": [
     {
      "name": "fee_bps",
      "in": "query",
      "required": false,
      "description": "The fee per 30 days, bps At most 10000 (base units for an amount).",
      "schema": {
       "type": "string",
       "pattern": "^(0|[1-9][0-9]*|0x[0-9a-fA-F]{1,64})$",
       "default": "100"
      }
     },
     {
      "name": "grace",
      "in": "query",
      "required": false,
      "description": "Grace after the due date A duration: seconds, or with a unit (90s, 15m, 2h, 7d).",
      "schema": {
       "type": "string",
       "pattern": "^[0-9]{1,12}\\s*(s|m|h|d|sec|secs|seconds?|mins?|minutes?|hours?|days?)?$",
       "default": "3d"
      }
     },
     {
      "name": "max_term",
      "in": "query",
      "required": false,
      "description": "The longest term A duration: seconds, or with a unit (90s, 15m, 2h, 7d).",
      "schema": {
       "type": "string",
       "pattern": "^[0-9]{1,12}\\s*(s|m|h|d|sec|secs|seconds?|mins?|minutes?|hours?|days?)?$",
       "default": "30d"
      }
     },
     {
      "name": "asset",
      "in": "query",
      "required": false,
      "description": "The asset (empty: the test dollar) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "registry",
      "in": "query",
      "required": false,
      "description": "The identity registry (empty: the testnet ERC-8004 one) Empty: the lab's own.",
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "chain_id",
      "in": "query",
      "required": false,
      "description": "Optional. The chain the transaction is for: only 46630 (Robinhood Chain testnet) is accepted; any other is refused.",
      "schema": {
       "type": "integer",
       "enum": [
        46630
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The unsigned creation transaction.",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Creation"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/ercs": {
   "get": {
    "operationId": "lab_list",
    "tags": [
     "lab"
    ],
    "summary": "The ten drafts: status, pull request, thread, pinned commits and the lab's testnet addresses",
    "responses": {
     "200": {
      "description": "The drafts.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     }
    }
   }
  },
  "/api/lab/erc/{n}": {
   "get": {
    "operationId": "lab_erc",
    "tags": [
     "lab"
    ],
    "summary": "One draft: what it does, its interface, the lab contracts, its actions, reads and deploys, and an agent's next calls",
    "parameters": [
     {
      "name": "n",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer",
       "minimum": 8458,
       "maximum": 8467
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The draft.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/setup/{address}": {
   "get": {
    "operationId": "lab_setup",
    "tags": [
     "setup"
    ],
    "summary": "An address's test ETH, test dollars and identities, with the transactions to register an identity and mint test dollars, and how to get test ETH",
    "parameters": [
     {
      "name": "address",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The setup.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/check/{n}/{chain}/{address}": {
   "get": {
    "operationId": "lab_check_contract",
    "tags": [
     "lab"
    ],
    "summary": "Check any contract against a draft: supportsInterface of its ERC-165 id, ERC-165 itself, and each view (reads only)",
    "parameters": [
     {
      "name": "n",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer",
       "minimum": 8458,
       "maximum": 8467
      }
     },
     {
      "name": "chain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer",
       "enum": [
        46630,
        4663
       ]
      }
     },
     {
      "name": "address",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The check.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/api/lab/feedback/{n}": {
   "get": {
    "operationId": "lab_feedback_draft",
    "tags": [
     "lab"
    ],
    "summary": "A feedback report for the draft's thread or its reference's issues, with the links; the lab posts nothing",
    "parameters": [
     {
      "name": "n",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer",
       "minimum": 8458,
       "maximum": 8467
      }
     },
     {
      "name": "note",
      "in": "query",
      "required": true,
      "schema": {
       "type": "string",
       "maxLength": 2000
      }
     },
     {
      "name": "tx_hash",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$"
      }
     },
     {
      "name": "contract",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     },
     {
      "name": "expected",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "maxLength": 1000
      }
     },
     {
      "name": "happened",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string",
       "maxLength": 1000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The report and its links.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "404": {
      "$ref": "#/components/responses/Unknown"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/drip/challenge": {
   "get": {
    "operationId": "drip_challenge",
    "tags": [
     "setup"
    ],
    "summary": "The message an address signs (EIP-191) to ask the drip for test ETH",
    "parameters": [
     {
      "name": "address",
      "in": "query",
      "required": true,
      "schema": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The challenge.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "address": {
           "type": "string"
          },
          "message": {
           "type": "string"
          },
          "expires": {
           "type": "string"
          },
          "chainId": {
           "type": "integer",
           "const": 46630
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  },
  "/drip": {
   "post": {
    "operationId": "drip",
    "tags": [
     "setup"
    ],
    "summary": "Test ETH of no value on chain 46630: 0.0005 per address a day, 0.05 a day in all",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "address",
         "message",
         "signature"
        ],
        "properties": {
         "address": {
          "type": "string",
          "pattern": "^0x[0-9a-fA-F]{40}$"
         },
         "message": {
          "type": "string",
          "description": "The message /drip/challenge gave, exactly."
         },
         "signature": {
          "type": "string",
          "pattern": "^0x([0-9a-fA-F]{2})*$"
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Sent.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "ok": {
           "type": "boolean"
          },
          "tx": {
           "type": "string"
          },
          "explorer": {
           "type": "string"
          },
          "amount": {
           "type": "string"
          },
          "next": {
           "type": "string"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/Refused"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     },
     "503": {
      "$ref": "#/components/responses/NotYet"
     }
    }
   }
  }
 },
 "components": {
  "schemas": {
   "Transaction": {
    "type": "object",
    "required": [
     "chainId",
     "to",
     "data",
     "value",
     "what"
    ],
    "properties": {
     "chainId": {
      "type": "integer",
      "const": 46630
     },
     "to": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
     },
     "data": {
      "type": "string",
      "pattern": "^0x([0-9a-fA-F]{2})*$"
     },
     "value": {
      "type": "string",
      "description": "Hex wei, always 0x0."
     },
     "what": {
      "type": "string",
      "description": "One line: what this transaction does."
     }
    }
   },
   "Creation": {
    "type": "object",
    "required": [
     "chainId",
     "to",
     "data",
     "value",
     "what"
    ],
    "properties": {
     "chainId": {
      "type": "integer",
      "const": 46630
     },
     "to": {
      "type": "null"
     },
     "data": {
      "type": "string",
      "pattern": "^0x([0-9a-fA-F]{2})*$"
     },
     "value": {
      "type": "string"
     },
     "what": {
      "type": "string"
     }
    }
   },
   "ReadResult": {
    "type": "object",
    "additionalProperties": true
   },
   "Error": {
    "type": "object",
    "required": [
     "error"
    ],
    "properties": {
     "error": {
      "type": "object",
      "required": [
       "code",
       "message"
      ],
      "properties": {
       "code": {
        "type": "string"
       },
       "message": {
        "type": "string"
       }
      }
     }
    }
   }
  },
  "responses": {
   "Refused": {
    "description": "Refused, in words: a parameter that does not check, or a chain other than 46630.",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Unknown": {
    "description": "No such draft, action, read or deploy.",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "RateLimited": {
    "description": "Too many requests from this address.",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "NotYet": {
    "description": "Not deployed on the lab yet, or a node or source did not answer.",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   }
  }
 }
}