{"openapi":"3.1.0","info":{"title":"Mockchain API","description":"One shared educational blockchain. A private producer creates a block every 15 seconds with a bounded coinbase reward to the app-controlled faucet treasury. Faucet claims and transfers queue for confirmation. API keys authorize account wallets; they are not blockchain private keys. No public mining or reset. Amounts are whole numbers of Mockcoin (MOCK), a fictional currency.","version":"2.0.0"},"paths":{"/api/v1/auth/signup":{"post":{"tags":["Account"],"summary":"Signup","operationId":"signup_api_v1_auth_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Signup"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountRecovery"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/auth/login":{"post":{"tags":["Account"],"summary":"Login","operationId":"login_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credentials"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/auth/me":{"get":{"tags":["Account"],"summary":"Me","operationId":"me_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"BrowserSession":[]}]}},"/api/v1/auth/logout":{"post":{"tags":["Account"],"summary":"Logout","operationId":"logout_api_v1_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"BrowserSession":[]}],"parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}]}},"/api/v1/auth/recover":{"post":{"tags":["Account"],"summary":"Recover","operationId":"recover_api_v1_auth_recover_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Recovery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountRecovery"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/account/api-keys":{"get":{"tags":["API keys"],"summary":"Keys","operationId":"keys_api_v1_account_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeys"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"BrowserSession":[]}]},"post":{"tags":["API keys"],"summary":"New Key","operationId":"new_key_api_v1_account_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyInput"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreated"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"BrowserSession":[]}],"parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}]}},"/api/v1/account/api-keys/{key_id}":{"delete":{"tags":["API keys"],"summary":"Revoke","operationId":"revoke_api_v1_account_api_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"BrowserSession":[]}]}},"/api/v1/auth/methods":{"get":{"tags":["Account"],"summary":"Methods","operationId":"methods_api_v1_auth_methods_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/auth/passkeys/register/options":{"post":{"tags":["Account"],"summary":"Register Options","operationId":"register_options_api_v1_auth_passkeys_register_options_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Registration"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}]}},"/api/v1/auth/passkeys/register/verify":{"post":{"tags":["Account"],"summary":"Register Verify","operationId":"register_verify_api_v1_auth_passkeys_register_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credential"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}]}},"/api/v1/auth/passkeys/login/options":{"post":{"tags":["Account"],"summary":"Login Options","operationId":"login_options_api_v1_auth_passkeys_login_options_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}]}},"/api/v1/auth/passkeys/login/verify":{"post":{"tags":["Account"],"summary":"Login Verify","operationId":"login_verify_api_v1_auth_passkeys_login_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credential"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}]}},"/api/v1/account/sign-in-methods":{"get":{"tags":["Account"],"summary":"Account Methods","operationId":"account_methods_api_v1_account_sign_in_methods_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"BrowserSession":[]}]}},"/api/v1/account/passkeys/{credential_id}":{"delete":{"tags":["Account"],"summary":"Remove Passkey","operationId":"remove_passkey_api_v1_account_passkeys__credential_id__delete","parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","title":"Credential Id"}},{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"BrowserSession":[]}]}},"/api/v1/account/recovery-code":{"post":{"tags":["Account"],"summary":"Recovery Code","operationId":"recovery_code_api_v1_account_recovery_code_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"BrowserSession":[]}],"parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}]}},"/api/v1/auth/google/start":{"post":{"tags":["Account"],"summary":"Google Start","operationId":"google_start_api_v1_auth_google_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleStart"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}]}},"/api/v1/feedback":{"post":{"tags":["Feedback"],"summary":"Submit","operationId":"submit_api_v1_feedback_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":32,"maxLength":64,"pattern":"^[a-zA-Z0-9-]+$","title":"Idempotency-Key"}},{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackInput"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{},{"BrowserSession":[]}],"description":"Private website feedback. Requires an allowed Origin header; cookie-authenticated writes also require CSRF. No public inbox."}},"/api/v1/wallets":{"get":{"tags":["Wallets"],"summary":"Wallets","operationId":"wallets_api_v1_wallets_get","parameters":[{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Before"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer API key","title":"Authorization"},"description":"Bearer API key"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletPage"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}},"post":{"tags":["Wallets"],"summary":"Create Wallet","operationId":"create_wallet_api_v1_wallets_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Required for authenticated writes. Reuse only for an identical retry.","title":"Idempotency-Key"},"description":"Required for authenticated writes. Reuse only for an identical retry."},{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletInput"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"ApiKeyBearer":[]},{"BrowserSession":[]}]}},"/api/v1/account/wallets":{"get":{"tags":["Wallets"],"summary":"Owned Wallets","operationId":"owned_wallets_api_v1_account_wallets_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer API key","title":"Authorization"},"description":"Bearer API key"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallets"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"BrowserSession":[]}]}},"/api/v1/wallets/{wallet_id}":{"get":{"tags":["Wallets"],"summary":"Get Wallet","operationId":"get_wallet_api_v1_wallets__wallet_id__get","parameters":[{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","title":"Wallet Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer API key","title":"Authorization"},"description":"Bearer API key"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/faucet":{"get":{"tags":["Faucet"],"summary":"Faucet Status","operationId":"faucet_status_api_v1_faucet_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer API key","title":"Authorization"},"description":"Bearer API key"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FaucetStatus"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}},"post":{"tags":["Faucet"],"summary":"Faucet","description":"Reserve and queue a 25 MOCK treasury payout. One/hour and 100/rolling day per account; 5,000/day globally. The recipient cannot spend pending credits.","operationId":"faucet_api_v1_faucet_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Required for authenticated writes. Reuse only for an identical retry.","title":"Idempotency-Key"},"description":"Required for authenticated writes. Reuse only for an identical retry."},{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FaucetInput"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionStatus"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"ApiKeyBearer":[]},{"BrowserSession":[]}]}},"/api/v1/transactions":{"post":{"tags":["Transactions"],"summary":"Transfer","operationId":"transfer_api_v1_transactions_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Required for authenticated writes. Reuse only for an identical retry.","title":"Idempotency-Key"},"description":"Required for authenticated writes. Reuse only for an identical retry."},{"name":"X-CSRF-Token","in":"header","required":false,"description":"Required for cookie-authenticated writes. Read csrf_token from /api/v1/auth/me. API-key writes do not need this header.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferInput"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionStatus"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}},"security":[{"ApiKeyBearer":[]},{"BrowserSession":[]}]},"get":{"tags":["Transactions"],"summary":"Transactions","operationId":"transactions_api_v1_transactions_get","parameters":[{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9223372036854775807,"minimum":1},{"type":"null"}],"title":"Before"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}},{"name":"address","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionPage"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/transactions/{transaction_id}":{"get":{"tags":["Transactions"],"summary":"Transaction","operationId":"transaction_api_v1_transactions__transaction_id__get","parameters":[{"name":"transaction_id","in":"path","required":true,"schema":{"type":"string","title":"Transaction Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionStatus"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/pending":{"get":{"tags":["Transactions"],"summary":"Pending","operationId":"pending_api_v1_pending_get","parameters":[{"name":"after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9223372036854775807,"minimum":1},{"type":"null"}],"title":"After"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionPage"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/blocks":{"get":{"tags":["Blocks"],"summary":"Blocks","operationId":"blocks_api_v1_blocks_get","parameters":[{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9223372036854775807,"minimum":0},{"type":"null"}],"title":"Before"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockPage"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/blocks/{reference}":{"get":{"tags":["Blocks"],"summary":"Get Block","operationId":"get_block_api_v1_blocks__reference__get","parameters":[{"name":"reference","in":"path","required":true,"schema":{"type":"string","title":"Reference"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Block"}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/chain":{"get":{"tags":["Blocks"],"summary":"Chain","operationId":"chain_api_v1_chain_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Chain"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/search":{"get":{"tags":["Explorer"],"summary":"Search","operationId":"search_api_v1_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":80,"pattern":"^(?:[0-9]+|[0-9a-f]{64}|(?:w|tx|cb)_[a-zA-Z0-9_]+)$","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"array","items":{"type":"object"}}}}}}}}}}}}},"components":{"schemas":{"Account":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","title":"Email"},"csrf_token":{"type":"string","title":"Csrf Token"}},"type":"object","required":["id","email","csrf_token"],"title":"Account"},"AccountRecovery":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","title":"Email"},"csrf_token":{"type":"string","title":"Csrf Token"},"recovery_code":{"type":"string","title":"Recovery Code"}},"type":"object","required":["id","email","csrf_token","recovery_code"],"title":"AccountRecovery"},"ApiKeyCreated":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"key":{"type":"string","title":"Key"}},"type":"object","required":["id","name","key"],"title":"ApiKeyCreated"},"ApiKeyInfo":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"prefix":{"type":"string","title":"Prefix"},"created":{"type":"integer","title":"Created"},"last_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used"},"revoked":{"type":"boolean","title":"Revoked"}},"type":"object","required":["id","name","prefix","created","last_used","revoked"],"title":"ApiKeyInfo"},"ApiKeys":{"properties":{"keys":{"items":{"$ref":"#/components/schemas/ApiKeyInfo"},"type":"array","title":"Keys"}},"type":"object","required":["keys"],"title":"ApiKeys"},"Audit":{"properties":{"valid":{"type":"boolean","title":"Valid"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height"},"checked_at":{"type":"integer","title":"Checked At"}},"type":"object","required":["valid","checked_at"],"title":"Audit"},"Block":{"properties":{"protocol_hash":{"type":"string","title":"Protocol Hash"},"height":{"type":"integer","title":"Height"},"previous_hash":{"type":"string","title":"Previous Hash"},"timestamp":{"type":"integer","title":"Timestamp"},"version":{"type":"integer","title":"Version"},"transactions":{"items":{"$ref":"#/components/schemas/Transaction"},"type":"array","title":"Transactions"},"hash":{"type":"string","title":"Hash"}},"type":"object","required":["protocol_hash","height","previous_hash","timestamp","version","transactions","hash"],"title":"Block"},"BlockPage":{"properties":{"blocks":{"items":{"$ref":"#/components/schemas/BlockSummary"},"type":"array","title":"Blocks"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["blocks","next_cursor"],"title":"BlockPage"},"BlockSummary":{"properties":{"protocol_hash":{"type":"string","title":"Protocol Hash"},"transferred":{"type":"integer","title":"Transferred"},"height":{"type":"integer","title":"Height"},"previous_hash":{"type":"string","title":"Previous Hash"},"timestamp":{"type":"integer","title":"Timestamp"},"version":{"type":"integer","title":"Version"},"hash":{"type":"string","title":"Hash"},"transaction_count":{"type":"integer","title":"Transaction Count"}},"type":"object","required":["protocol_hash","transferred","height","previous_hash","timestamp","version","hash","transaction_count"],"title":"BlockSummary"},"Chain":{"properties":{"blocks":{"items":{"$ref":"#/components/schemas/BlockSummary"},"type":"array","title":"Blocks"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"},"chain_id":{"type":"string","title":"Chain Id"},"valid":{"type":"boolean","title":"Valid"},"height":{"type":"integer","title":"Height"},"total_blocks":{"type":"integer","title":"Total Blocks"},"tip_hash":{"type":"string","title":"Tip Hash"},"pending_count":{"type":"integer","title":"Pending Count"},"minted":{"type":"integer","title":"Minted"},"confirmed_transactions":{"type":"integer","title":"Confirmed Transactions"},"producer_status":{"type":"string","enum":["running","delayed","paused"],"title":"Producer Status"},"producer_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Producer Error"},"next_block_at":{"type":"integer","title":"Next Block At"},"server_time":{"type":"integer","title":"Server Time"},"protocol":{"$ref":"#/components/schemas/Protocol"},"audit":{"$ref":"#/components/schemas/Audit"}},"type":"object","required":["blocks","next_cursor","chain_id","valid","height","total_blocks","tip_hash","pending_count","minted","confirmed_transactions","producer_status","producer_error","next_block_at","server_time","protocol","audit"],"title":"Chain"},"Credential":{"properties":{"credential":{"additionalProperties":true,"type":"object","title":"Credential"}},"additionalProperties":false,"type":"object","required":["credential"],"title":"Credential"},"Credentials":{"properties":{"email":{"type":"string","maxLength":254,"minLength":3,"title":"Email"},"password":{"type":"string","maxLength":128,"minLength":12,"title":"Password"}},"additionalProperties":false,"type":"object","required":["email","password"],"title":"Credentials"},"FaucetInput":{"properties":{"wallet_id":{"type":"string","maxLength":64,"minLength":1,"title":"Wallet Id"}},"additionalProperties":false,"type":"object","required":["wallet_id"],"title":"FaucetInput"},"FaucetStatus":{"properties":{"treasury":{"$ref":"#/components/schemas/Wallet"},"claim_amount":{"type":"integer","title":"Claim Amount"},"cooldown_seconds":{"type":"integer","title":"Cooldown Seconds"},"account_daily_limit":{"type":"integer","title":"Account Daily Limit"},"global_daily_limit":{"type":"integer","title":"Global Daily Limit"},"global_remaining":{"type":"integer","title":"Global Remaining"},"account_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Account Remaining"},"next_claim_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Claim At"}},"type":"object","required":["treasury","claim_amount","cooldown_seconds","account_daily_limit","global_daily_limit","global_remaining","account_remaining","next_claim_at"],"title":"FaucetStatus"},"FeedbackInput":{"properties":{"message":{"type":"string","maxLength":2000,"minLength":1,"title":"Message"},"page":{"type":"string","enum":["/","/explorer","/block","/tx","/wallet","/docs","/mempool","/login","/signup","/recover"],"title":"Page"}},"additionalProperties":false,"type":"object","required":["message","page"],"title":"FeedbackInput"},"GoogleStart":{"properties":{"link":{"type":"boolean","title":"Link","default":false},"return_to":{"type":"string","maxLength":256,"title":"Return To","default":"/explorer#lab"}},"additionalProperties":false,"type":"object","title":"GoogleStart"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"KeyInput":{"properties":{"name":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[\\w .-]+$","title":"Name"},"password":{"anyOf":[{"type":"string","maxLength":128,"minLength":12},{"type":"null"}],"title":"Password"}},"additionalProperties":false,"type":"object","required":["name"],"title":"KeyInput"},"Protocol":{"properties":{"version":{"type":"integer","title":"Version"},"interval_ms":{"type":"integer","title":"Interval Ms"},"reward":{"type":"integer","title":"Reward"},"max_supply":{"type":"integer","title":"Max Supply"},"batch_size":{"type":"integer","title":"Batch Size"},"pending_limit":{"type":"integer","title":"Pending Limit"},"claim_amount":{"type":"integer","title":"Claim Amount"},"claim_cooldown_ms":{"type":"integer","title":"Claim Cooldown Ms"},"account_daily_limit":{"type":"integer","title":"Account Daily Limit"},"global_daily_limit":{"type":"integer","title":"Global Daily Limit"},"treasury":{"type":"string","title":"Treasury"}},"type":"object","required":["version","interval_ms","reward","max_supply","batch_size","pending_limit","claim_amount","claim_cooldown_ms","account_daily_limit","global_daily_limit","treasury"],"title":"Protocol"},"Recovery":{"properties":{"email":{"type":"string","maxLength":254,"minLength":3,"title":"Email"},"recovery_code":{"type":"string","maxLength":128,"minLength":16,"title":"Recovery Code"},"password":{"type":"string","maxLength":128,"minLength":12,"title":"Password"}},"additionalProperties":false,"type":"object","required":["email","recovery_code","password"],"title":"Recovery"},"Registration":{"properties":{"email":{"anyOf":[{"type":"string","maxLength":254,"minLength":3},{"type":"null"}],"title":"Email"},"name":{"type":"string","maxLength":40,"minLength":1,"title":"Name","default":"My passkey"}},"additionalProperties":false,"type":"object","title":"Registration"},"Signup":{"properties":{"email":{"type":"string","maxLength":254,"minLength":3,"title":"Email"},"password":{"type":"string","maxLength":128,"minLength":12,"title":"Password"}},"additionalProperties":false,"type":"object","required":["email","password"],"title":"Signup"},"Transaction":{"properties":{"id":{"type":"string","title":"Id"},"kind":{"type":"string","enum":["coinbase","faucet","transfer"],"title":"Kind"},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender"},"recipient":{"type":"string","title":"Recipient"},"amount":{"type":"integer","title":"Amount"},"nonce":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nonce"},"timestamp":{"type":"integer","title":"Timestamp"},"version":{"type":"integer","title":"Version"}},"type":"object","required":["id","kind","sender","recipient","amount","nonce","timestamp","version"],"title":"Transaction"},"TransactionPage":{"properties":{"transactions":{"items":{"$ref":"#/components/schemas/TransactionStatus"},"type":"array","title":"Transactions"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["transactions","next_cursor"],"title":"TransactionPage"},"TransactionStatus":{"properties":{"id":{"type":"string","title":"Id"},"kind":{"type":"string","enum":["coinbase","faucet","transfer"],"title":"Kind"},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender"},"recipient":{"type":"string","title":"Recipient"},"amount":{"type":"integer","title":"Amount"},"nonce":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nonce"},"timestamp":{"type":"integer","title":"Timestamp"},"version":{"type":"integer","title":"Version"},"cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"},"status":{"type":"string","enum":["pending","confirmed"],"title":"Status"},"confirmations":{"type":"integer","title":"Confirmations"},"block_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Block Height"}},"type":"object","required":["id","kind","sender","recipient","amount","nonce","timestamp","version","status","confirmations","block_height"],"title":"TransactionStatus"},"TransferInput":{"properties":{"sender":{"type":"string","maxLength":64,"minLength":1,"title":"Sender"},"recipient":{"type":"string","maxLength":64,"minLength":1,"title":"Recipient"},"amount":{"type":"integer","maximum":100000.0,"exclusiveMinimum":0.0,"title":"Amount"},"nonce":{"type":"integer","maximum":2147483647.0,"minimum":0.0,"title":"Nonce"}},"additionalProperties":false,"type":"object","required":["sender","recipient","amount","nonce"],"title":"TransferInput"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"Wallet":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"balance":{"type":"integer","title":"Balance"},"nonce":{"type":"integer","title":"Nonce"},"reserved":{"type":"integer","title":"Reserved"},"available":{"type":"integer","title":"Available"},"owned":{"type":"boolean","title":"Owned"},"system":{"type":"boolean","title":"System","default":false},"next_nonce":{"type":"integer","title":"Next Nonce"}},"type":"object","required":["id","name","balance","nonce","reserved","available","owned","next_nonce"],"title":"Wallet"},"WalletInput":{"properties":{"name":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[\\w .-]+$","title":"Name"}},"additionalProperties":false,"type":"object","required":["name"],"title":"WalletInput"},"WalletPage":{"properties":{"wallets":{"items":{"$ref":"#/components/schemas/Wallet"},"type":"array","title":"Wallets"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["wallets"],"title":"WalletPage"},"Wallets":{"properties":{"wallets":{"items":{"$ref":"#/components/schemas/Wallet"},"type":"array","title":"Wallets"}},"type":"object","required":["wallets"],"title":"Wallets"}},"securitySchemes":{"ApiKeyBearer":{"type":"http","scheme":"bearer","description":"API key created in account settings; not a blockchain private key."},"BrowserSession":{"type":"apiKey","in":"cookie","name":"__Host-mockchain_session","description":"Secure HttpOnly login cookie. Cookie writes also need Origin and X-CSRF-Token from /auth/me."}}}}