{"openapi":"3.1.0","info":{"title":"Tokenizer Solutions API","version":"0.5.0","description":"Registry and agent API of the Tokenizer Solutions token generators.\n\nHuman users sign in with email and password; AI agents sign in with a wallet signature (POST /api/agents/challenge, then POST /api/agents/login) and must hold a valid subscription on a network before using the network-scoped endpoints there. A missing subscription is answered with 402 and the unsigned payment transaction. Every response uses the Response envelope."},"tags":[{"name":"Agents","description":"Wallet sign-in, subscriptions, network discovery, ABIs."},{"name":"Agent transaction builder","description":"Unsigned transactions for the agent to sign, and server-verified recording of what they deployed."},{"name":"Users (human accounts)"},{"name":"ERC20 tokens"},{"name":"ERC20 crowdsales"},{"name":"ERC721 tokens"},{"name":"ERC1404 tokens"},{"name":"ERC4626 vaults"},{"name":"ERC1155 tokens"},{"name":"Metadata proxy"},{"name":"MCP","description":"Model Context Protocol endpoint wrapping this API for agent frameworks."},{"name":"Documentation"}],"paths":{"/api/agents/challenge":{"post":{"tags":["Agents"],"summary":"Step 1 of sign-in: get a message to sign.","description":"Rate limited per IP. The agent signs `message` with the wallet (EIP-191 personal_sign) and sends the signature to /api/agents/login before `expiresAt`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["walletAddress"],"properties":{"walletAddress":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}}}}},"responses":{"200":{"description":"The challenge.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/AgentChallenge"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/login":{"post":{"tags":["Agents"],"summary":"Step 2 of sign-in: exchange the signed challenge for a bearer token.","description":"Creates the agent account on first login (roles [\"agent\"]). The token expires after one hour; repeat the two steps to get a new one. Rate limited per IP.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["walletAddress","nonce","signature"],"properties":{"walletAddress":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"nonce":{"type":"string","pattern":"^[0-9a-f]{32}$"},"signature":{"type":"string","description":"65-byte hex signature of the challenge message."},"name":{"type":"string","maxLength":64,"description":"Display name, used only when the account is created."}}}}}},"responses":{"200":{"description":"Signed in.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object","properties":{"token":{"type":"string","description":"\"Bearer <jwt>\", send as the Authorization header."},"agent":{"$ref":"#/components/schemas/Agent"}}}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/current":{"get":{"tags":["Agents"],"summary":"The signed-in agent.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Profile and server version.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/Agent"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/delete":{"post":{"tags":["Agents"],"summary":"Delete the agent account and every record it owns.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Removed.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"null"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/subscriptions":{"get":{"tags":["Agents"],"summary":"Subscription status on every network with a subscriptions manager.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"One entry per network; an unreachable network carries `error` instead of a status.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionStatus"}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/subscriptions/{networkType}":{"get":{"tags":["Agents"],"summary":"Subscription status on one network.","security":[{"bearerAuth":[]}],"parameters":[{"name":"networkType","in":"path","required":true,"description":"Network name, e.g. sepolia.","schema":{"type":"string"}}],"responses":{"200":{"description":"The status.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionStatus"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"503":{"description":"Service unavailable: the chain could not be read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/subscriptions/{networkType}/tx":{"post":{"tags":["Agents"],"summary":"Unsigned transaction that pays the subscription on one network.","description":"Sign and broadcast it from any wallet; `value` is the exact fee the contract requires. Extends the subscription by 30 days.","security":[{"bearerAuth":[]}],"parameters":[{"name":"networkType","in":"path","required":true,"description":"Network name, e.g. sepolia.","schema":{"type":"string"}}],"responses":{"200":{"description":"The transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object","properties":{"networkType":{"type":"string"},"transaction":{"$ref":"#/components/schemas/UnsignedTransaction"},"instructions":{"type":"string"}}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"503":{"description":"Service unavailable: the chain could not be read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/networks":{"get":{"tags":["Agents"],"summary":"Catalog of every configured network: generators, fees, subscriptions manager.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"One entry per network; an unreachable network carries `error`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/NetworkCatalog"}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/networks/{networkType}":{"get":{"tags":["Agents"],"summary":"Catalog of one network.","security":[{"bearerAuth":[]}],"parameters":[{"name":"networkType","in":"path","required":true,"description":"Network name, e.g. sepolia.","schema":{"type":"string"}}],"responses":{"200":{"description":"The catalog.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/NetworkCatalog"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"503":{"description":"Service unavailable: the chain could not be read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/abis":{"get":{"tags":["Agents"],"summary":"Names of the contract ABIs the server can hand out.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"The names.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"type":"object","properties":{"contractName":{"type":"string"},"abi":{"type":"string","description":"Path of the ABI endpoint."}}}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/abis/{contractName}":{"get":{"tags":["Agents"],"summary":"The ABI of a generator, a generated contract or the subscriptions manager.","security":[{"bearerAuth":[]}],"parameters":[{"name":"contractName","in":"path","required":true,"description":"A name from /api/agents/abis.","schema":{"type":"string"}}],"responses":{"200":{"description":"The ABI.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object","properties":{"contractName":{"type":"string"},"abi":{"type":"array","items":{"type":"object"}}}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/tx":{"get":{"tags":["Agent transaction builder"],"summary":"Families, deploy variants and operations the builder supports, with their parameters.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"One entry per family.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/FamilyDescription"}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/tx/{family}/generate":{"post":{"tags":["Agent transaction builder"],"summary":"Unsigned transaction that deploys a contract through one of the family generators.","description":"The value is the exact generator fee, read from the generator at build time. Sign and broadcast it from the agent wallet, then call confirm with the hash. Subscription-gated on `networkType`.","security":[{"bearerAuth":[]}],"parameters":[{"name":"family","in":"path","required":true,"description":"Contract family.","schema":{"type":"string","enum":["erc20tokens","erc20crowdsales","erc721tokens","erc1404tokens","erc4626vaults","erc1155tokens"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["networkType","variant","params"],"properties":{"networkType":{"type":"string"},"variant":{"type":"string","description":"A variant from GET /api/agents/tx."},"params":{"type":"object","description":"The variant parameters, by name.","additionalProperties":true}}}}}},"responses":{"200":{"description":"The transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object","properties":{"family":{"type":"string"},"networkType":{"type":"string"},"transaction":{"$ref":"#/components/schemas/UnsignedTransaction"},"instructions":{"type":"string"},"variant":{"type":"string"},"confirmWith":{"type":"object","properties":{"endpoint":{"type":"string"},"body":{"type":"object"}}}}}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"503":{"description":"Service unavailable: the chain could not be read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/tx/{family}/confirm":{"post":{"tags":["Agent transaction builder"],"summary":"Record the contract a broadcast generate transaction deployed.","description":"Waits for the configured confirmations (202 while pending), requires the transaction to have been sent by the agent wallet and to have emitted the family's *Generated event from one of its generators, then reads the contract metadata from chain and stores it in the agent's registry. Idempotent: confirming twice returns the existing record with `alreadyRecorded: true`.","security":[{"bearerAuth":[]}],"parameters":[{"name":"family","in":"path","required":true,"description":"Contract family.","schema":{"type":"string","enum":["erc20tokens","erc20crowdsales","erc721tokens","erc1404tokens","erc4626vaults","erc1155tokens"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["networkType","transactionHash"],"properties":{"networkType":{"type":"string"},"transactionHash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}}}}},"responses":{"200":{"description":"Recorded.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object","description":"The family document plus transactionHash and alreadyRecorded.","additionalProperties":true}}}]}}}},"202":{"description":"Not mined or not enough confirmations yet; retry later.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object","properties":{"transactionHash":{"type":"string"},"confirmations":{"type":"integer"},"required":{"type":"integer"},"instructions":{"type":"string"}}}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"403":{"description":"The transaction was not sent by the agent wallet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"503":{"description":"Service unavailable: the chain could not be read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/tx/{family}/{address}/{networkId}/refresh":{"post":{"tags":["Agent transaction builder"],"summary":"Re-read a recorded contract from chain and update the record.","security":[{"bearerAuth":[]}],"parameters":[{"name":"family","in":"path","required":true,"description":"Contract family.","schema":{"type":"string","enum":["erc20tokens","erc20crowdsales","erc721tokens","erc1404tokens","erc4626vaults","erc1155tokens"]}},{"name":"address","in":"path","required":true,"description":"Recorded contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"The updated document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object","additionalProperties":true}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"503":{"description":"Service unavailable: the chain could not be read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/tx/erc1155tokens/{address}/{networkId}/mints/confirm":{"post":{"tags":["Agent transaction builder"],"summary":"ERC1155 only: record the mints a broadcast mint or mintBatch transaction produced.","description":"Same checks as the deploy confirm (confirmations, success, sent by the agent wallet), then one mint document per minted id, with the token URI read from chain. Idempotent per transaction and id.","security":[{"bearerAuth":[]}],"parameters":[{"name":"address","in":"path","required":true,"description":"Recorded ERC1155 contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["transactionHash"],"properties":{"transactionHash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}}}}},"responses":{"200":{"description":"The recorded mints (each with alreadyRecorded).","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/ERC1155TokenMint"}}}}]}}}},"202":{"description":"Not mined or not enough confirmations yet; retry later.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object","properties":{"transactionHash":{"type":"string"},"confirmations":{"type":"integer"},"required":{"type":"integer"}}}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"403":{"description":"The transaction was not sent by the agent wallet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"503":{"description":"Service unavailable: the chain could not be read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/agents/tx/{family}/{address}/{networkId}/operations/{operation}":{"post":{"tags":["Agent transaction builder"],"summary":"Unsigned management call on a recorded contract (mint, transfer, collect, terminate, ...).","description":"Operations and their parameters are listed by GET /api/agents/tx. The contract must be in the agent's registry. After broadcasting, call refresh to update the record.","security":[{"bearerAuth":[]}],"parameters":[{"name":"family","in":"path","required":true,"description":"Contract family.","schema":{"type":"string","enum":["erc20tokens","erc20crowdsales","erc721tokens","erc1404tokens","erc4626vaults","erc1155tokens"]}},{"name":"address","in":"path","required":true,"description":"Recorded contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}},{"name":"operation","in":"path","required":true,"description":"An operation of the family.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"params":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"The transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object","properties":{"family":{"type":"string"},"networkType":{"type":"string"},"transaction":{"$ref":"#/components/schemas/UnsignedTransaction"},"instructions":{"type":"string"},"operation":{"type":"string"}}}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/users/register":{"post":{"tags":["Users (human accounts)"],"summary":"Register a human account (email confirmation follows).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","email","password","password2"],"properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"password":{"type":"string"},"password2":{"type":"string"},"captchaToken":{"type":"string","description":"Cloudflare Turnstile token (required where the captcha is enabled)."}}}}}},"responses":{"200":{"description":"Created.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/users/confirm-registration/{registrationHash}":{"get":{"tags":["Users (human accounts)"],"summary":"Email confirmation link target; redirects to the login page.","parameters":[{"name":"registrationHash","in":"path","required":true,"description":"Hash from the confirmation email.","schema":{"type":"string"}}],"responses":{"302":{"description":"Redirect to the login page."}}}},"/api/users/login":{"post":{"tags":["Users (human accounts)"],"summary":"Sign in with email and password.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","password"],"properties":{"email":{"type":"string","format":"email"},"password":{"type":"string"},"captchaToken":{"type":"string"}}}}}},"responses":{"200":{"description":"Signed in.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object","properties":{"token":{"type":"string"}}}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/users/current":{"get":{"tags":["Users (human accounts)"],"summary":"The signed-in user.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Profile.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"object"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/users/delete":{"post":{"tags":["Users (human accounts)"],"summary":"Delete the account and every record it owns.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["password"],"properties":{"password":{"type":"string"}}}}}},"responses":{"200":{"description":"Removed.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"null"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/users/change-password":{"post":{"tags":["Users (human accounts)"],"summary":"Change the password.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"oldPassword":{"type":"string"},"newPassword":{"type":"string"},"newPassword2":{"type":"string"}}}}}},"responses":{"200":{"description":"Changed.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"null"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/users/recover-password":{"post":{"tags":["Users (human accounts)"],"summary":"Send a password reset email.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"},"captchaToken":{"type":"string"}}}}}},"responses":{"200":{"description":"Email sent.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"null"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/users/reset-password":{"post":{"tags":["Users (human accounts)"],"summary":"Set a new password with the hash from the reset email.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","resetHash","newPassword"],"properties":{"email":{"type":"string","format":"email"},"resetHash":{"type":"string"},"newPassword":{"type":"string"},"newPassword2":{"type":"string"}}}}}},"responses":{"200":{"description":"Password reset.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"null"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc20tokens/{tokenAddress}/{networkId}/crowdsales":{"get":{"tags":["ERC20 tokens"],"summary":"Crowdsales recorded for one ERC20 token.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Token address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"The crowdsales.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/ERC20Crowdsale"}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc1155tokens/{tokenAddress}/{networkId}/mints":{"get":{"tags":["ERC1155 tokens"],"summary":"Mints recorded for one ERC1155 contract.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Token address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"The mints.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/ERC1155TokenMint"}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"post":{"tags":["ERC1155 tokens"],"summary":"Record a mint.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Token address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC1155TokenMintBody"}}}},"responses":{"200":{"description":"The stored mint.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC1155TokenMint"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/metadata-proxy":{"post":{"tags":["Metadata proxy"],"summary":"Fetch ERC-721/ERC-1155 token metadata server-side (CORS and SSRF guarded).","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tokenUri"],"properties":{"tokenUri":{"type":"string","format":"uri"}}}}}},"responses":{"200":{"description":"The fetched metadata document itself, not wrapped in the Response envelope.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/mcp":{"post":{"tags":["MCP"],"summary":"Model Context Protocol endpoint (streamable HTTP, stateless).","description":"JSON-RPC messages of the Model Context Protocol. Without a bearer token only the agent_challenge and agent_login tools are exposed; with an agent token the full tool set wraps the REST API described here. Each tool result is the REST Response envelope as JSON text.","security":[{},{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"A JSON-RPC 2.0 message or batch."}}}},"responses":{"200":{"description":"JSON-RPC response (application/json or text/event-stream)."},"400":{"description":"Malformed message."}}},"get":{"tags":["MCP"],"summary":"Not supported (stateless server).","responses":{"405":{"description":"Method not allowed."}}},"delete":{"tags":["MCP"],"summary":"Not supported (stateless server).","responses":{"405":{"description":"Method not allowed."}}}},"/.well-known/api-catalog":{"get":{"tags":["Documentation"],"summary":"RFC 9727 API catalog: linkset pointing at this document, the docs page and the MCP endpoint.","responses":{"200":{"description":"Linkset.","content":{"application/linkset+json":{"schema":{"type":"object","properties":{"linkset":{"type":"array","items":{"type":"object"}}}}}}}}}},"/llms.txt":{"get":{"tags":["Documentation"],"summary":"LLM-readable site summary with the agent entry points.","responses":{"200":{"description":"Markdown text.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/openapi.json":{"get":{"tags":["Documentation"],"summary":"This document.","responses":{"200":{"description":"OpenAPI 3.1 document.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/erc20tokens":{"get":{"tags":["ERC20 tokens"],"summary":"List the caller's ERC20 tokens.","description":"Names no network, so it is not subscription-gated for agents.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"The caller's documents, newest first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/ERC20Token"}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"post":{"tags":["ERC20 tokens"],"summary":"Record a deployed contract.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise). The server stores the fields as posted; agents should prefer the transaction-builder confirm endpoints, which read the contract from chain.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC20TokenBody"}}}},"responses":{"200":{"description":"The stored document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC20Token"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"409":{"description":"Duplicate document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc20tokens/{tokenAddress}/{networkId}":{"get":{"tags":["ERC20 tokens"],"summary":"Read one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"The document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC20Token"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"delete":{"tags":["ERC20 tokens"],"summary":"Remove one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"Removed; the removed document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC20Token"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"put":{"tags":["ERC20 tokens"],"summary":"Update one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC20TokenBody"}}}},"responses":{"200":{"description":"The updated document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC20Token"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc20crowdsales":{"get":{"tags":["ERC20 crowdsales"],"summary":"List the caller's ERC20 crowdsales.","description":"Names no network, so it is not subscription-gated for agents.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"The caller's documents, newest first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/ERC20Crowdsale"}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"post":{"tags":["ERC20 crowdsales"],"summary":"Record a deployed contract.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise). The server stores the fields as posted; agents should prefer the transaction-builder confirm endpoints, which read the contract from chain.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC20CrowdsaleBody"}}}},"responses":{"200":{"description":"The stored document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC20Crowdsale"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"409":{"description":"Duplicate document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc20crowdsales/{crowdsaleAddress}/{networkId}":{"get":{"tags":["ERC20 crowdsales"],"summary":"Read one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"crowdsaleAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"The document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC20Crowdsale"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"delete":{"tags":["ERC20 crowdsales"],"summary":"Remove one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"crowdsaleAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"Removed; the removed document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC20Crowdsale"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"put":{"tags":["ERC20 crowdsales"],"summary":"Update one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"crowdsaleAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC20CrowdsaleBody"}}}},"responses":{"200":{"description":"The updated document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC20Crowdsale"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc721tokens":{"get":{"tags":["ERC721 tokens"],"summary":"List the caller's ERC721 tokens.","description":"Names no network, so it is not subscription-gated for agents.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"The caller's documents, newest first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/ERC721Token"}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"post":{"tags":["ERC721 tokens"],"summary":"Record a deployed contract.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise). The server stores the fields as posted; agents should prefer the transaction-builder confirm endpoints, which read the contract from chain.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC721TokenBody"}}}},"responses":{"200":{"description":"The stored document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC721Token"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"409":{"description":"Duplicate document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc721tokens/{tokenAddress}/{networkId}":{"get":{"tags":["ERC721 tokens"],"summary":"Read one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"The document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC721Token"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"delete":{"tags":["ERC721 tokens"],"summary":"Remove one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"Removed; the removed document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC721Token"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"put":{"tags":["ERC721 tokens"],"summary":"Update one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC721TokenBody"}}}},"responses":{"200":{"description":"The updated document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC721Token"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc1404tokens":{"get":{"tags":["ERC1404 tokens"],"summary":"List the caller's ERC1404 tokens.","description":"Names no network, so it is not subscription-gated for agents.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"The caller's documents, newest first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/ERC1404Token"}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"post":{"tags":["ERC1404 tokens"],"summary":"Record a deployed contract.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise). The server stores the fields as posted; agents should prefer the transaction-builder confirm endpoints, which read the contract from chain.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC1404TokenBody"}}}},"responses":{"200":{"description":"The stored document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC1404Token"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"409":{"description":"Duplicate document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc1404tokens/{tokenAddress}/{networkId}":{"get":{"tags":["ERC1404 tokens"],"summary":"Read one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"The document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC1404Token"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"delete":{"tags":["ERC1404 tokens"],"summary":"Remove one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"Removed; the removed document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC1404Token"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"put":{"tags":["ERC1404 tokens"],"summary":"Update one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC1404TokenBody"}}}},"responses":{"200":{"description":"The updated document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC1404Token"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc4626vaults":{"get":{"tags":["ERC4626 vaults"],"summary":"List the caller's ERC4626 vaults.","description":"Names no network, so it is not subscription-gated for agents.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"The caller's documents, newest first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/ERC4626Vault"}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"post":{"tags":["ERC4626 vaults"],"summary":"Record a deployed contract.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise). The server stores the fields as posted; agents should prefer the transaction-builder confirm endpoints, which read the contract from chain.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC4626VaultBody"}}}},"responses":{"200":{"description":"The stored document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC4626Vault"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"409":{"description":"Duplicate document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc4626vaults/{vaultAddress}/{networkId}":{"get":{"tags":["ERC4626 vaults"],"summary":"Read one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"vaultAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"The document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC4626Vault"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"delete":{"tags":["ERC4626 vaults"],"summary":"Remove one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"vaultAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"Removed; the removed document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC4626Vault"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"put":{"tags":["ERC4626 vaults"],"summary":"Update one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"vaultAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC4626VaultBody"}}}},"responses":{"200":{"description":"The updated document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC4626Vault"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc1155tokens":{"get":{"tags":["ERC1155 tokens"],"summary":"List the caller's ERC1155 tokens.","description":"Names no network, so it is not subscription-gated for agents.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"The caller's documents, newest first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/ERC1155Token"}}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"post":{"tags":["ERC1155 tokens"],"summary":"Record a deployed contract.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise). The server stores the fields as posted; agents should prefer the transaction-builder confirm endpoints, which read the contract from chain.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERC1155TokenBody"}}}},"responses":{"200":{"description":"The stored document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC1155Token"}}}]}}}},"400":{"description":"Invalid input. `result` maps field names to messages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"409":{"description":"Duplicate document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/api/erc1155tokens/{tokenAddress}/{networkId}":{"get":{"tags":["ERC1155 tokens"],"summary":"Read one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"The document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC1155Token"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}},"delete":{"tags":["ERC1155 tokens"],"summary":"Remove one record.","description":"Human users and agents. For agents the request is gated by the on-chain subscription on the network it names (402 otherwise).","security":[{"bearerAuth":[]}],"parameters":[{"name":"tokenAddress","in":"path","required":true,"description":"Contract address.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"networkId","in":"path","required":true,"description":"EVM chain id.","schema":{"type":"integer","description":"EVM chain id."}}],"responses":{"200":{"description":"Removed; the removed document.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/ERC1155Token"}}}]}}}},"401":{"description":"Missing, expired or unauthorized token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"402":{"description":"Agents only: no valid subscription on the network the request names. `result` carries the unsigned payment transaction.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Response"},{"type":"object","properties":{"result":{"$ref":"#/components/schemas/SubscriptionRequired"}}}]}}}},"404":{"description":"Document not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}}},"components":{"schemas":{"Response":{"type":"object","description":"Every JSON answer uses this envelope.","required":["success","code","message"],"properties":{"success":{"type":"boolean"},"code":{"type":"integer","description":"Mirrors the HTTP status."},"message":{"type":"string"},"result":{"description":"Payload on success; field errors or payment details on failure; null otherwise."}}},"UnsignedTransaction":{"type":"object","description":"A transaction for the agent to sign and broadcast with its own wallet. The server never holds keys.","required":["to","data","value","chainId"],"properties":{"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"data":{"type":"string"},"value":{"type":"string","description":"Wei, decimal string."},"chainId":{"type":"integer"}}},"SubscriptionRequired":{"type":"object","properties":{"networkType":{"type":"string"},"chainId":{"type":"integer"},"managerAddress":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"fee":{"type":"string","description":"Wei, decimal string."},"transaction":{"$ref":"#/components/schemas/UnsignedTransaction"},"instructions":{"type":"string"}}},"SubscriptionStatus":{"type":"object","properties":{"networkType":{"type":"string"},"chainId":{"type":"integer"},"managerAddress":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"isValid":{"type":"boolean"},"expiresAt":{"type":"integer","description":"Unix seconds; 0 when never paid."},"fee":{"type":"string","description":"Wei, decimal string."},"error":{"type":"string","description":"Present instead of the status when the network node could not be read."}}},"AgentChallenge":{"type":"object","properties":{"walletAddress":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"nonce":{"type":"string"},"message":{"type":"string","description":"Sign exactly this text."},"expiresAt":{"type":"string","format":"date-time"}}},"Agent":{"type":"object","properties":{"id":{"type":"string","description":"Also the key of the on-chain subscription."},"name":{"type":"string"},"walletAddress":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"roles":{"type":"array","items":{"type":"string"}},"created":{"type":"string","format":"date-time"},"version":{"type":"string"}}},"Generator":{"type":"object","properties":{"name":{"type":"string"},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"generates":{"type":"string","description":"Contract the generator deploys."},"abi":{"type":"string","description":"Path of the generator ABI."},"generatesAbi":{"type":"string","description":"Path of the generated contract ABI."},"feeGetter":{"type":"string","description":"View that returns the deploy fee (getTokenFee or getCrowdsaleFee)."},"fee":{"type":"string","description":"Current deploy fee in wei, decimal string."}}},"FamilyDescription":{"type":"object","properties":{"family":{"type":"string"},"registry":{"type":"string"},"addressField":{"type":"string"},"generatedEvent":{"type":"string"},"variants":{"type":"object","additionalProperties":{"type":"object","properties":{"generator":{"type":"string"},"method":{"type":"string"},"params":{"type":"array","items":{"type":"string"}}}}},"operations":{"type":"object","additionalProperties":{"type":"object","properties":{"method":{"type":"string"},"params":{"type":"array","items":{"type":"string"}},"note":{"type":"string"}}}},"endpoints":{"type":"object","additionalProperties":{"type":"string"}}}},"NetworkCatalog":{"type":"object","properties":{"networkType":{"type":"string"},"chainId":{"type":"integer"},"subscriptionsManager":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"fee":{"type":"string"},"abi":{"type":"string"}}},"families":{"type":"object","additionalProperties":{"type":"object","properties":{"registry":{"type":"string","description":"Registry endpoint for this family."},"generators":{"type":"array","items":{"$ref":"#/components/schemas/Generator"}}}}},"error":{"type":"string"}}},"ERC20Token":{"type":"object","properties":{"_id":{"type":"string"},"user":{"type":"string","description":"Owner account id."},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"tokenAddress":{"type":"string"},"tokenName":{"type":"string"},"tokenSymbol":{"type":"string"},"tokenDecimals":{"type":"string"},"tokenTotalSupply":{"type":"string"},"tokenWeiBalance":{"type":"string"},"tokenCap":{"type":"string"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC20Token":{"type":"boolean"},"supportsERC20TokenMeta":{"type":"boolean"},"supportsERC20TokenMetaName":{"type":"boolean"},"supportsERC20TokenMetaSymbol":{"type":"boolean"},"supportsERC20TokenMetaDecimals":{"type":"boolean"},"supportsERC20TokenCapped":{"type":"boolean"},"supportsERC20TokenCappedAggregated":{"type":"boolean"},"supportsERC20TokenCappedBurnable":{"type":"boolean"},"supportsERC20TokenCappedBurnableAggregated":{"type":"boolean"},"supportsERC20TokenNotCapped":{"type":"boolean"},"supportsERC20TokenNotCappedAggregated":{"type":"boolean"},"supportsERC20TokenNotCappedBurnable":{"type":"boolean"},"supportsERC20TokenNotCappedBurnableAggregated":{"type":"boolean"}}},"ERC20TokenBody":{"type":"object","properties":{"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"tokenAddress":{"type":"string"},"tokenName":{"type":"string"},"tokenSymbol":{"type":"string"},"tokenDecimals":{"type":"string"},"tokenTotalSupply":{"type":"string"},"tokenWeiBalance":{"type":"string"},"tokenCap":{"type":"string"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC20Token":{"type":"boolean"},"supportsERC20TokenMeta":{"type":"boolean"},"supportsERC20TokenMetaName":{"type":"boolean"},"supportsERC20TokenMetaSymbol":{"type":"boolean"},"supportsERC20TokenMetaDecimals":{"type":"boolean"},"supportsERC20TokenCapped":{"type":"boolean"},"supportsERC20TokenCappedAggregated":{"type":"boolean"},"supportsERC20TokenCappedBurnable":{"type":"boolean"},"supportsERC20TokenCappedBurnableAggregated":{"type":"boolean"},"supportsERC20TokenNotCapped":{"type":"boolean"},"supportsERC20TokenNotCappedAggregated":{"type":"boolean"},"supportsERC20TokenNotCappedBurnable":{"type":"boolean"},"supportsERC20TokenNotCappedBurnableAggregated":{"type":"boolean"}},"required":["networkType","networkId","supportsERC165","ownerAddress","tokenAddress","tokenName","tokenSymbol","tokenDecimals","tokenTotalSupply","tokenWeiBalance","tokenCap","supportsOwnable","supportsCollectable","supportsSelfdestructable","supportsERC20Token","supportsERC20TokenMeta","supportsERC20TokenMetaName","supportsERC20TokenMetaSymbol","supportsERC20TokenMetaDecimals","supportsERC20TokenCapped","supportsERC20TokenCappedAggregated","supportsERC20TokenCappedBurnable","supportsERC20TokenCappedBurnableAggregated","supportsERC20TokenNotCapped","supportsERC20TokenNotCappedAggregated","supportsERC20TokenNotCappedBurnable","supportsERC20TokenNotCappedBurnableAggregated"]},"ERC20Crowdsale":{"type":"object","properties":{"_id":{"type":"string"},"user":{"type":"string","description":"Owner account id."},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"crowdsaleAddress":{"type":"string"},"crowdsaleWeiBalance":{"type":"string"},"crowdsaleTokenBalance":{"type":"string"},"crowdsaleTokenAllowance":{"type":"string"},"tokenAddress":{"type":"string"},"tokenName":{"type":"string"},"tokenSymbol":{"type":"string"},"tokenDecimals":{"type":"string"},"walletAddress":{"type":"string"},"walletWeiBalance":{"type":"string"},"walletTokenBalance":{"type":"string"},"crowdsaleRate":{"type":"string"},"weiRaised":{"type":"string"},"crowdsaleIsCapped":{"type":"boolean"},"crowdsaleCap":{"type":"string"},"crowdsaleCapReached":{"type":"boolean"},"crowdsaleIsTimed":{"type":"boolean"},"crowdsaleOpeningTime":{"type":"string"},"crowdsaleClosingTime":{"type":"string"},"crowdsaleIsOpen":{"type":"boolean"},"crowdsaleHasClosed":{"type":"boolean"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC20CrowdsaleCapped":{"type":"boolean"},"supportsERC20CrowdsaleCappedAggregated":{"type":"boolean"},"supportsERC20CrowdsaleTimed":{"type":"boolean"},"supportsERC20CrowdsaleTimedAggregated":{"type":"boolean"}}},"ERC20CrowdsaleBody":{"type":"object","properties":{"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"crowdsaleAddress":{"type":"string"},"crowdsaleWeiBalance":{"type":"string"},"crowdsaleTokenBalance":{"type":"string"},"crowdsaleTokenAllowance":{"type":"string"},"tokenAddress":{"type":"string"},"tokenName":{"type":"string"},"tokenSymbol":{"type":"string"},"tokenDecimals":{"type":"string"},"walletAddress":{"type":"string"},"walletWeiBalance":{"type":"string"},"walletTokenBalance":{"type":"string"},"crowdsaleRate":{"type":"string"},"weiRaised":{"type":"string"},"crowdsaleIsCapped":{"type":"boolean"},"crowdsaleCap":{"type":"string"},"crowdsaleCapReached":{"type":"boolean"},"crowdsaleIsTimed":{"type":"boolean"},"crowdsaleOpeningTime":{"type":"string"},"crowdsaleClosingTime":{"type":"string"},"crowdsaleIsOpen":{"type":"boolean"},"crowdsaleHasClosed":{"type":"boolean"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC20CrowdsaleCapped":{"type":"boolean"},"supportsERC20CrowdsaleCappedAggregated":{"type":"boolean"},"supportsERC20CrowdsaleTimed":{"type":"boolean"},"supportsERC20CrowdsaleTimedAggregated":{"type":"boolean"}},"required":["networkType","networkId","supportsERC165","ownerAddress","crowdsaleAddress","crowdsaleWeiBalance","crowdsaleTokenBalance","crowdsaleTokenAllowance","tokenAddress","tokenName","tokenSymbol","tokenDecimals","walletAddress","walletWeiBalance","walletTokenBalance","crowdsaleRate","weiRaised","crowdsaleCap","crowdsaleCapReached","crowdsaleOpeningTime","crowdsaleClosingTime","crowdsaleIsOpen","crowdsaleHasClosed"]},"ERC721Token":{"type":"object","properties":{"_id":{"type":"string"},"user":{"type":"string","description":"Owner account id."},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"tokenAddress":{"type":"string"},"tokenName":{"type":"string"},"tokenSymbol":{"type":"string"},"tokenTotalSupply":{"type":"string"},"tokenWeiBalance":{"type":"string"},"tokenBaseId":{"type":"string"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC721Token":{"type":"boolean"},"supportsERC721TokenMetadata":{"type":"boolean"},"supportsERC721TokenEnumerable":{"type":"boolean"},"supportsERC721TokenFull":{"type":"boolean"},"supportsERC721TokenMintable":{"type":"boolean"},"supportsERC721TokenMintableAggregated":{"type":"boolean"},"supportsERC721TokenMintableBurnable":{"type":"boolean"},"supportsERC721TokenMintableBurnableAggregated":{"type":"boolean"},"supportsERC721TokenMintableAutoId":{"type":"boolean"},"supportsERC721TokenMintableAutoIdAggregated":{"type":"boolean"},"supportsERC721TokenMintableAutoIdBurnable":{"type":"boolean"},"supportsERC721TokenMintableAutoIdBurnableAggregated":{"type":"boolean"}}},"ERC721TokenBody":{"type":"object","properties":{"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"tokenAddress":{"type":"string"},"tokenName":{"type":"string"},"tokenSymbol":{"type":"string"},"tokenTotalSupply":{"type":"string"},"tokenWeiBalance":{"type":"string"},"tokenBaseId":{"type":"string"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC721Token":{"type":"boolean"},"supportsERC721TokenMetadata":{"type":"boolean"},"supportsERC721TokenEnumerable":{"type":"boolean"},"supportsERC721TokenFull":{"type":"boolean"},"supportsERC721TokenMintable":{"type":"boolean"},"supportsERC721TokenMintableAggregated":{"type":"boolean"},"supportsERC721TokenMintableBurnable":{"type":"boolean"},"supportsERC721TokenMintableBurnableAggregated":{"type":"boolean"},"supportsERC721TokenMintableAutoId":{"type":"boolean"},"supportsERC721TokenMintableAutoIdAggregated":{"type":"boolean"},"supportsERC721TokenMintableAutoIdBurnable":{"type":"boolean"},"supportsERC721TokenMintableAutoIdBurnableAggregated":{"type":"boolean"}},"required":["networkType","networkId","supportsERC165","ownerAddress","tokenAddress","tokenName","tokenSymbol","tokenTotalSupply","tokenWeiBalance","tokenBaseId","supportsOwnable","supportsCollectable","supportsSelfdestructable","supportsERC721Token","supportsERC721TokenMetadata","supportsERC721TokenEnumerable","supportsERC721TokenFull","supportsERC721TokenMintable","supportsERC721TokenMintableAggregated","supportsERC721TokenMintableBurnable","supportsERC721TokenMintableBurnableAggregated","supportsERC721TokenMintableAutoId","supportsERC721TokenMintableAutoIdAggregated","supportsERC721TokenMintableAutoIdBurnable","supportsERC721TokenMintableAutoIdBurnableAggregated"]},"ERC1404Token":{"type":"object","properties":{"_id":{"type":"string"},"user":{"type":"string","description":"Owner account id."},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"tokenAddress":{"type":"string"},"tokenName":{"type":"string"},"tokenSymbol":{"type":"string"},"tokenDecimals":{"type":"string"},"tokenTotalSupply":{"type":"string"},"tokenWeiBalance":{"type":"string"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC20Token":{"type":"boolean"},"supportsERC20TokenMeta":{"type":"boolean"},"supportsERC20TokenMetaName":{"type":"boolean"},"supportsERC20TokenMetaSymbol":{"type":"boolean"},"supportsERC20TokenMetaDecimals":{"type":"boolean"},"supportsERC1404":{"type":"boolean"},"supportsERC1404Codes":{"type":"boolean"},"supportsERC1404Rules":{"type":"boolean"},"supportsERC1404TokenBurnable":{"type":"boolean"},"supportsERC1404TokenBurnableAggregated":{"type":"boolean"}}},"ERC1404TokenBody":{"type":"object","properties":{"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"tokenAddress":{"type":"string"},"tokenName":{"type":"string"},"tokenSymbol":{"type":"string"},"tokenDecimals":{"type":"string"},"tokenTotalSupply":{"type":"string"},"tokenWeiBalance":{"type":"string"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC20Token":{"type":"boolean"},"supportsERC20TokenMeta":{"type":"boolean"},"supportsERC20TokenMetaName":{"type":"boolean"},"supportsERC20TokenMetaSymbol":{"type":"boolean"},"supportsERC20TokenMetaDecimals":{"type":"boolean"},"supportsERC1404":{"type":"boolean"},"supportsERC1404Codes":{"type":"boolean"},"supportsERC1404Rules":{"type":"boolean"},"supportsERC1404TokenBurnable":{"type":"boolean"},"supportsERC1404TokenBurnableAggregated":{"type":"boolean"}},"required":["networkType","networkId","supportsERC165","ownerAddress","tokenAddress","tokenName","tokenSymbol","tokenDecimals","tokenTotalSupply","tokenWeiBalance","supportsOwnable","supportsCollectable","supportsSelfdestructable","supportsERC20Token","supportsERC20TokenMeta","supportsERC20TokenMetaName","supportsERC20TokenMetaSymbol","supportsERC20TokenMetaDecimals","supportsERC1404","supportsERC1404Codes","supportsERC1404Rules"]},"ERC4626Vault":{"type":"object","properties":{"_id":{"type":"string"},"user":{"type":"string","description":"Owner account id."},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"vaultAddress":{"type":"string"},"vaultName":{"type":"string"},"vaultSymbol":{"type":"string"},"assetAddress":{"type":"string"},"vaultCap":{"type":"string"},"vaultTotalSupply":{"type":"string"},"vaultTotalAssets":{"type":"string"},"vaultWeiBalance":{"type":"string"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC4626":{"type":"boolean"},"supportsERC4626VaultCapped":{"type":"boolean"},"supportsERC4626VaultCappedAggregated":{"type":"boolean"},"supportsERC4626VaultNotCappedAggregated":{"type":"boolean"}}},"ERC4626VaultBody":{"type":"object","properties":{"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"vaultAddress":{"type":"string"},"vaultName":{"type":"string"},"vaultSymbol":{"type":"string"},"assetAddress":{"type":"string"},"vaultCap":{"type":"string"},"vaultTotalSupply":{"type":"string"},"vaultTotalAssets":{"type":"string"},"vaultWeiBalance":{"type":"string"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC4626":{"type":"boolean"},"supportsERC4626VaultCapped":{"type":"boolean"},"supportsERC4626VaultCappedAggregated":{"type":"boolean"},"supportsERC4626VaultNotCappedAggregated":{"type":"boolean"}},"required":["networkType","networkId","supportsERC165","ownerAddress","vaultAddress","vaultName","vaultSymbol","assetAddress","vaultCap","vaultTotalSupply","vaultTotalAssets","vaultWeiBalance","supportsOwnable","supportsCollectable","supportsSelfdestructable","supportsERC4626","supportsERC4626VaultCapped","supportsERC4626VaultCappedAggregated","supportsERC4626VaultNotCappedAggregated"]},"ERC1155Token":{"type":"object","properties":{"_id":{"type":"string"},"user":{"type":"string","description":"Owner account id."},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"tokenAddress":{"type":"string"},"baseUri":{"type":"string"},"tokenWeiBalance":{"type":"string"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC1155Mintable":{"type":"boolean"},"supportsERC1155MintBatch":{"type":"boolean"},"supportsERC1155TokenMintable":{"type":"boolean"},"supportsERC1155TokenMintableAggregated":{"type":"boolean"},"supportsERC1155Burnable":{"type":"boolean"},"supportsERC1155TokenMintableBurnable":{"type":"boolean"},"supportsERC1155TokenMintableBurnableAggregated":{"type":"boolean"}}},"ERC1155TokenBody":{"type":"object","properties":{"networkType":{"type":"string"},"networkId":{"type":"number"},"supportsERC165":{"type":"boolean"},"ownerAddress":{"type":"string"},"tokenAddress":{"type":"string"},"baseUri":{"type":"string"},"tokenWeiBalance":{"type":"string"},"supportsOwnable":{"type":"boolean"},"supportsCollectable":{"type":"boolean"},"supportsSelfdestructable":{"type":"boolean"},"supportsERC1155Mintable":{"type":"boolean"},"supportsERC1155MintBatch":{"type":"boolean"},"supportsERC1155TokenMintable":{"type":"boolean"},"supportsERC1155TokenMintableAggregated":{"type":"boolean"},"supportsERC1155Burnable":{"type":"boolean"},"supportsERC1155TokenMintableBurnable":{"type":"boolean"},"supportsERC1155TokenMintableBurnableAggregated":{"type":"boolean"}},"required":["networkType","networkId","supportsERC165","ownerAddress","tokenAddress","baseUri","tokenWeiBalance","supportsOwnable","supportsCollectable","supportsSelfdestructable","supportsERC1155Mintable","supportsERC1155MintBatch","supportsERC1155TokenMintable","supportsERC1155TokenMintableAggregated","supportsERC1155Burnable","supportsERC1155TokenMintableBurnable","supportsERC1155TokenMintableBurnableAggregated"]},"ERC1155TokenMint":{"type":"object","properties":{"_id":{"type":"string"},"user":{"type":"string","description":"Owner account id."},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"networkType":{"type":"string"},"networkId":{"type":"number"},"tokenAddress":{"type":"string"},"tokenId":{"type":"string"},"toAddress":{"type":"string"},"amount":{"type":"string"},"tokenUri":{"type":"string"},"transactionHash":{"type":"string"}}},"ERC1155TokenMintBody":{"type":"object","properties":{"networkType":{"type":"string"},"networkId":{"type":"number"},"tokenAddress":{"type":"string"},"tokenId":{"type":"string"},"toAddress":{"type":"string"},"amount":{"type":"string"},"tokenUri":{"type":"string"},"transactionHash":{"type":"string"}},"required":["networkType","networkId","tokenAddress","tokenId","toAddress","amount","transactionHash"]}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Send the `token` from /api/users/login or /api/agents/login as the Authorization header (it already starts with \"Bearer \")."}}}}