openapi: 3.0.3
info:
  title: 4626.fun Agent API
  version: 1.0.0
  description: "Public, agent-friendly API for querying 4626.fun and building unsigned onchain transactions. Read operations are unauthenticated and rate-limited. Build and write operations require a session or SIWA. Creator vaults are pre-launch; do not treat demo vaults as live deposit destinations."
  contact:
    name: 4626.fun
    email: "hello@4626.fun"
    url: "https://4626.fun/developers"
servers:
  - url: "https://app.4626.fun/api"
    description: 4626.fun Agent API
components:
  schemas:
    ErrorEnvelope:
      type: object
      additionalProperties: false
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: string
    EvmAddress:
      type: string
      description: EIP-55 or lowercase 20-byte EVM address
      pattern: "^0x[a-fA-F0-9]{40}$"
    AgentJsonPayload:
      type: object
      additionalProperties: true
      description: JSON object returned by this 4626.fun Agent API operation
    UnsignedCalldata:
      type: object
      additionalProperties: true
      description: Build-only payload with unsigned transaction calldata. The server does not submit the transaction.
      properties:
        to:
          $ref: "#/components/schemas/EvmAddress"
        data:
          type: string
          description: Hex-encoded calldata
        value:
          type: string
          description: Wei value as a decimal string
paths:
  /v1/spec.json:
    get:
      operationId: getOpenApiSpec
      summary: OpenAPI spec
      description: OpenAPI spec Canonical JSON document. Also published at /openapi.json. Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: OpenAPI spec
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/spec.yaml:
    get:
      operationId: getOpenApiSpecYaml
      summary: OpenAPI spec (YAML)
      description: "OpenAPI spec (YAML) Same document as /v1/spec.json, serialized as YAML. Also published at /api/openapi.yaml. Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization."
      responses:
        200:
          description: OpenAPI spec (YAML)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/token/{address}/metadata:
    get:
      operationId: getTokenMetadata
      summary: Share token metadata (ERC-7572)
      description: Share token metadata (ERC-7572) Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Share token address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Share token metadata (ERC-7572)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/token/{address}/image:
    get:
      operationId: getTokenImage
      summary: Share token image renderer
      description: Share token image renderer Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Share token address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Share token image renderer
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/token/{address}/logo.png:
    get:
      operationId: getTokenLogoPng
      summary: Canonical PNG logo alias (64x64 default)
      description: Canonical PNG logo alias (64x64 default) Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Share token address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Canonical PNG logo alias (64x64 default)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/token/{address}/logo.svg:
    get:
      operationId: getTokenLogoSvg
      summary: Canonical SVG logo alias (64x64 default)
      description: Canonical SVG logo alias (64x64 default) Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Share token address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Canonical SVG logo alias (64x64 default)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/token/{address}/tokenlist:
    get:
      operationId: getTokenListEntry
      summary: Token Lists compatible single-token payload
      description: Token Lists compatible single-token payload Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Share token address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Token Lists compatible single-token payload
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/vault/{address}/report:
    get:
      operationId: getVaultReport
      summary: Vault report
      description: Vault report Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Vault address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Vault report
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/vault/{address}/strategies:
    get:
      operationId: getVaultStrategies
      summary: Vault strategies
      description: Vault strategies Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Vault address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Vault strategies
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/explore/vaults:
    get:
      operationId: listExploreVaults
      summary: "Explore vault list with optional search, time, and sorting filters"
      description: "Explore vault list with optional search, time, and sorting filters Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization."
      responses:
        200:
          description: "Explore vault list with optional search, time, and sorting filters"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/auction/{address}/status:
    get:
      operationId: getAuctionStatus
      summary: CCA strategy auction status
      description: CCA strategy auction status Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Auction or CCA launch-arm address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: CCA strategy auction status
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/auction/{address}/activity:
    get:
      operationId: getAuctionActivity
      summary: Recent live activity for a CCA strategy auction
      description: Recent live activity for a CCA strategy auction Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Auction or CCA launch-arm address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Recent live activity for a CCA strategy auction
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/auction/{address}/recentBids:
    get:
      operationId: listAuctionRecentBids
      summary: Recent bids for an auction contract
      description: Recent bids for an auction contract Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Auction contract address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Recent bids for an auction contract
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agenc/agent.json:
    get:
      operationId: getAgencAgentMetadata
      summary: AgenC AGENT_METADATA v1 for the 4626 jackpot provider
      description: AgenC AGENT_METADATA v1 for the 4626 jackpot provider Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: AgenC AGENT_METADATA v1 for the 4626 jackpot provider
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agenc/lottery-ticket.json:
    get:
      operationId: getAgencLotteryTicket
      summary: Advertised AgenC listing payload for the Raydium lottery ticket-proxy
      description: Advertised AgenC listing payload for the Raydium lottery ticket-proxy Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: Advertised AgenC listing payload for the Raydium lottery ticket-proxy
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/global:
    get:
      operationId: getLotteryGlobal
      summary: Global lottery stats
      description: Global lottery stats Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: Global lottery stats
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/creator/{creatorCoin}:
    get:
      operationId: getLotteryCreator
      summary: Creator lottery stats
      description: Creator lottery stats Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: creatorCoin
          in: path
          required: true
          description: Creator coin address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Creator lottery stats
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/live:
    get:
      operationId: getLotteryLive
      summary: "Public live lottery surface (jackpot, health, inbox pipeline, recent entries/winners)"
      description: "Public live lottery surface (jackpot, health, inbox pipeline, recent entries/winners) Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization."
      responses:
        200:
          description: "Public live lottery surface (jackpot, health, inbox pipeline, recent entries/winners)"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/ingest-webhook:
    post:
      operationId: ingestLotteryWebhook
      summary: Alchemy/Helius push ingest for Solana hook-program lottery tickets
      description: Alchemy/Helius push ingest for Solana hook-program lottery tickets Machine-authenticated ingest. Not a public developer webhook. Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      responses:
        200:
          description: Accepted
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        503:
          description: Retry — finalized tx not available yet
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/recentWinners:
    get:
      operationId: listLotteryRecentWinners
      summary: Recent lottery winners (logs)
      description: Recent lottery winners (logs) Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: Recent lottery winners (logs)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/recentEntries:
    get:
      operationId: listLotteryRecentEntries
      summary: Recent lottery swap entries (logs)
      description: "Recent lottery swap entries (logs) Each event includes entrySource: amoe | swap | unknown. Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization."
      responses:
        200:
          description: Recent lottery swap entries (logs)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/friendkey-coverage:
    get:
      operationId: getLotteryFriendkeyCoverage
      summary: Preview staked FriendKey coverage the lottery can attribute to a buyer
      description: Preview staked FriendKey coverage the lottery can attribute to a buyer Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: Preview staked FriendKey coverage the lottery can attribute to a buyer
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
    post:
      operationId: publishLotteryFriendkeyCoverage
      summary: Publish a prior-block FriendKey stake snapshot under the lottery buyer
      description: Publish a prior-block FriendKey stake snapshot under the lottery buyer Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      responses:
        200:
          description: Publish a prior-block FriendKey stake snapshot under the lottery buyer
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/amoe/nonce:
    get:
      operationId: getAmoeNonce
      summary: Issue AMOE nonce + signable challenge
      description: Issue AMOE nonce + signable challenge Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: Issue AMOE nonce + signable challenge
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/amoe/credits:
    get:
      operationId: getAmoeCredits
      summary: Read AMOE credit balance for a wallet
      description: Read AMOE credit balance for a wallet Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: Read AMOE credit balance for a wallet
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/amoe/submit:
    post:
      operationId: submitAmoeChallenge
      summary: Verify AMOE challenge signature and return attested onchain payload
      description: Verify AMOE challenge signature and return attested onchain payload Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      responses:
        200:
          description: Verify AMOE challenge signature and return attested onchain payload
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/amoe/twitter-checkin:
    post:
      operationId: checkinAmoeTwitter
      summary: Claim daily Twitter AMOE credit after server-verified tweet proof (1 credit/day)
      description: Claim daily Twitter AMOE credit after server-verified tweet proof (1 credit/day) Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      responses:
        200:
          description: Claim daily Twitter AMOE credit after server-verified tweet proof (1 credit/day)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/lottery/amoe/xmtp-checkin:
    post:
      operationId: checkinAmoeXmtp
      summary: Deprecated manual XMTP check-in endpoint
      description: Deprecated. AMOE credits are now auto-awarded from server-verified inbound DMs. Returns 410 Gone.
      responses:
        410:
          description: Gone
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/chat/ethos-sync:
    post:
      operationId: syncEthosCanonical
      summary: "Cron: canonical Ethos sync (updates + sweep reconciliation)"
      description: "Cron: canonical Ethos sync (updates + sweep reconciliation) Machine/cron authenticated. Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited."
      responses:
        200:
          description: "Cron: canonical Ethos sync (updates + sweep reconciliation)"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/chat/ethos-sync-hot:
    post:
      operationId: syncEthosHot
      summary: "Cron: hot-lane Ethos score sync from update feed"
      description: "Cron: hot-lane Ethos score sync from update feed Machine/cron authenticated. Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited."
      responses:
        200:
          description: "Cron: hot-lane Ethos score sync from update feed"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/gauge/epoch:
    get:
      operationId: getGaugeEpoch
      summary: Gauge epoch info
      description: Gauge epoch info Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: Gauge epoch info
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/gauge/vaults:
    get:
      operationId: listGaugeVaults
      summary: Gauge-eligible vaults + weights
      description: Gauge-eligible vaults + weights Returns the current gauge-eligible vault set and weights. Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: Gauge-eligible vaults + weights
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/gauge/user/{address}:
    get:
      operationId: getGaugeUserVotes
      summary: Gauge user votes
      description: Gauge user votes Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Voter address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Gauge user votes
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/ve4626/user/{address}:
    get:
      operationId: getVe4626User
      summary: ve4626 lock + power
      description: ve4626 lock + power Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Locker address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: ve4626 lock + power
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/charm/strategy/{address}:
    get:
      operationId: getCharmStrategy
      summary: Charm strategy config + status
      description: Charm strategy config + status Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: path
          required: true
          description: Charm strategy address
          schema:
            $ref: "#/components/schemas/EvmAddress"
      responses:
        200:
          description: Charm strategy config + status
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/capabilities:
    get:
      operationId: getAgentCapabilities
      summary: Resolve wallet room capabilities + qualification state
      description: Resolve wallet room capabilities + qualification state Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: Resolve wallet room capabilities + qualification state
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/creators:
    get:
      operationId: listCreatorAgents
      summary: List creator XMTP agents
      description: List creator XMTP agents Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: List creator XMTP agents
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/creators/enable:
    post:
      operationId: enableCreatorAgent
      summary: Enable/provision creator XMTP agent (auth required)
      description: Enable/provision creator XMTP agent (auth required) Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      responses:
        200:
          description: Enable/provision creator XMTP agent (auth required)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/feedback/review:
    post:
      operationId: reviewAgentFeedback
      summary: x402-gated ERC-8004 technical review with Lens payload + unsigned giveFeedback calldata
      description: x402-gated ERC-8004 technical review with Lens payload + unsigned giveFeedback calldata Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      responses:
        200:
          description: Review generated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        402:
          description: Payment required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/access-proof/request:
    post:
      operationId: requestAgentAccessProof
      summary: Issue signable room access proof payload
      description: Issue signable room access proof payload Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      responses:
        200:
          description: Issue signable room access proof payload
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/access-proof/verify:
    post:
      operationId: verifyAgentAccessProof
      summary: Verify signed proof and issue short-lived room token
      description: Verify signed proof and issue short-lived room token Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      responses:
        200:
          description: Verify signed proof and issue short-lived room token
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/xmtp/join:
    post:
      operationId: joinAgentXmtp
      summary: Validate room token and return XMTP join instructions
      description: Validate room token and return XMTP join instructions Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      responses:
        200:
          description: Validate room token and return XMTP join instructions
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/telegram/join:
    post:
      operationId: joinAgentTelegram
      summary: Validate room token and return Telegram join instructions
      description: Validate room token and return Telegram join instructions Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      responses:
        200:
          description: Validate room token and return Telegram join instructions
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/identity/verification:
    get:
      operationId: getAgentIdentityVerification
      summary: "Public ERC-8004 discoverability report across onchain state, mirrors, and service health"
      description: "Public ERC-8004 discoverability report across onchain state, mirrors, and service health Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization."
      responses:
        200:
          description: "Public ERC-8004 discoverability report across onchain state, mirrors, and service health"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/profile:
    get:
      operationId: getAgentProfile
      summary: Aggregated public profile for the canonical ERC-8004 agent
      description: Aggregated public profile for the canonical ERC-8004 agent Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: agentId
          in: query
          required: true
          description: Canonical ERC-8004 agent token ID
          schema:
            type: integer
            minimum: 0
      responses:
        200:
          description: Canonical agent profile
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        404:
          description: Only the canonical agent profile is exposed
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /agents:
    get:
      operationId: listPublicAgents
      summary: Directory-compatible agent listing for the public 4626 agent surface
      description: Directory-compatible agent listing for the public 4626 agent surface Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: Directory-compatible agent listing for the public 4626 agent surface
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/feedback:
    get:
      operationId: getAgentFeedback
      summary: Read ERC-8004 feedback from the onchain registry or indexed cache
      description: Read ERC-8004 feedback from the onchain registry or indexed cache Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: agentId
          in: query
          required: true
          description: ERC-8004 agent token ID
          schema:
            type: integer
            minimum: 0
        - name: client
          in: query
          required: false
          description: Optional reviewer wallet address
          schema:
            $ref: "#/components/schemas/EvmAddress"
        - name: tag1
          in: query
          required: false
          description: Optional primary tag filter
          schema:
            type: string
        - name: tag2
          in: query
          required: false
          description: Optional secondary tag filter
          schema:
            type: string
        - name: includeRevoked
          in: query
          required: false
          description: Include revoked feedback entries
          schema:
            type: boolean
        - name: mode
          in: query
          required: false
          description: "summary, all, single, or indexed response shape"
          schema:
            type: string
            enum:
              - summary
              - all
              - single
              - indexed
        - name: feedbackIndex
          in: query
          required: false
          description: "Required when mode=single"
          schema:
            type: integer
            minimum: 0
        - name: limit
          in: query
          required: false
          description: Indexed mode page size
          schema:
            type: integer
            minimum: 0
        - name: offset
          in: query
          required: false
          description: Indexed mode offset
          schema:
            type: integer
            minimum: 0
        - name: orderBy
          in: query
          required: false
          description: Indexed mode sort column
          schema:
            type: string
            enum:
              - created_at
              - value
        - name: order
          in: query
          required: false
          description: Indexed mode sort direction
          schema:
            type: string
            enum:
              - asc
              - desc
      responses:
        200:
          description: Read ERC-8004 feedback from the onchain registry or indexed cache
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/wallet-intelligence:
    get:
      operationId: getWalletIntelligence
      summary: Build or fetch wallet intelligence for a wallet address
      description: Build or fetch wallet intelligence for a wallet address Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: address
          in: query
          required: true
          description: Wallet address to enrich
          schema:
            $ref: "#/components/schemas/EvmAddress"
        - name: hops
          in: query
          required: false
          description: Funding-trace depth
          schema:
            type: integer
            minimum: 1
        - name: chains
          in: query
          required: false
          description: Comma-separated chain IDs to inspect
          schema:
            type: string
        - name: store
          in: query
          required: false
          description: Store immutable Grove fallback when true
          schema:
            type: boolean
        - name: portfolio
          in: query
          required: false
          description: Include portfolio enrichment
          schema:
            type: boolean
        - name: ens
          in: query
          required: false
          description: Include ENS enrichment
          schema:
            type: boolean
        - name: lens
          in: query
          required: false
          description: Include Lens enrichment
          schema:
            type: boolean
        - name: labels
          in: query
          required: false
          description: Include entity labels
          schema:
            type: boolean
        - name: noCache
          in: query
          required: false
          description: Bypass cached intelligence
          schema:
            type: boolean
      responses:
        200:
          description: Build or fetch wallet intelligence for a wallet address
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
    post:
      operationId: postWalletIntelligence
      summary: Build or fetch wallet intelligence from a JSON request body
      description: Build or fetch wallet intelligence from a JSON request body Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - address
              properties:
                address:
                  $ref: "#/components/schemas/EvmAddress"
                hops:
                  type: integer
                  minimum: 1
                chainIds:
                  type: array
                  items:
                    type: integer
                    minimum: 1
                store:
                  type: boolean
                includePortfolio:
                  type: boolean
                includeEns:
                  type: boolean
                includeLens:
                  type: boolean
                includeLabels:
                  type: boolean
                noCache:
                  type: boolean
      responses:
        200:
          description: Build or fetch wallet intelligence from a JSON request body
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/agents/publish:
    post:
      operationId: publishAgentRegistration
      summary: Publish canonical ERC-8004 registration metadata and optional Grove fallback
      description: Publish canonical ERC-8004 registration metadata and optional Grove fallback Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                storeOnGrove:
                  type: boolean
      responses:
        200:
          description: Publish canonical ERC-8004 registration metadata and optional Grove fallback
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /lens/agent-registration:
    get:
      operationId: getLensAgentRegistration
      summary: Preview canonical ERC-8004 registration metadata and optional Grove storage status
      description: Preview canonical ERC-8004 registration metadata and optional Grove storage status Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: store
          in: query
          required: false
          description: Store on Grove when true (requires authentication)
          schema:
            type: boolean
      responses:
        200:
          description: Preview canonical ERC-8004 registration metadata and optional Grove storage status
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
    post:
      operationId: storeLensAgentRegistration
      summary: Store or preview canonical ERC-8004 registration metadata on Lens Grove
      description: Store or preview canonical ERC-8004 registration metadata on Lens Grove Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                store:
                  type: boolean
      responses:
        200:
          description: Store or preview canonical ERC-8004 registration metadata on Lens Grove
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /lens/reputation-graph:
    get:
      operationId: getLensReputationGraph
      summary: Build or fetch an ERC-8004 reputation graph
      description: Build or fetch an ERC-8004 reputation graph Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      parameters:
        - name: agentId
          in: query
          required: true
          description: ERC-8004 agent token ID
          schema:
            type: integer
            minimum: 0
        - name: tag1
          in: query
          required: false
          description: Optional primary tag filter
          schema:
            type: string
        - name: tag2
          in: query
          required: false
          description: Optional secondary tag filter
          schema:
            type: string
        - name: includeRevoked
          in: query
          required: false
          description: Include revoked feedback entries
          schema:
            type: boolean
        - name: store
          in: query
          required: false
          description: Store immutable Grove fallback when true
          schema:
            type: boolean
      responses:
        200:
          description: Build or fetch an ERC-8004 reputation graph
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
    post:
      operationId: postLensReputationGraph
      summary: Build or store an ERC-8004 reputation graph from a JSON request body
      description: Build or store an ERC-8004 reputation graph from a JSON request body Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - agentId
              properties:
                agentId:
                  type: integer
                  minimum: 0
                tag1:
                  type: string
                tag2:
                  type: string
                includeRevoked:
                  type: boolean
                store:
                  type: boolean
      responses:
        200:
          description: Build or store an ERC-8004 reputation graph from a JSON request body
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /lens/feedback-payload:
    get:
      operationId: describeLensFeedbackPayload
      summary: Describe the feedback payload contract used for Lens Grove storage
      description: Describe the feedback payload contract used for Lens Grove storage Public read. No authentication required. Rate-limited. Optional session or SIWA headers are accepted but unused for authorization.
      responses:
        200:
          description: Describe the feedback payload contract used for Lens Grove storage
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
    post:
      operationId: buildLensFeedbackPayload
      summary: Build and optionally store an ERC-8004 feedback payload on Lens Grove
      description: Build and optionally store an ERC-8004 feedback payload on Lens Grove Requires an authenticated 4626.fun session cookie or SIWA. Rate-limited.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - agentId
                - value
                - valueDecimals
              properties:
                agentId:
                  type: integer
                  minimum: 0
                value:
                  type: string
                valueDecimals:
                  type: integer
                  minimum: 0
                  maximum: 18
                store:
                  type: boolean
                clientAddress:
                  $ref: "#/components/schemas/EvmAddress"
                reasoning:
                  type: string
                reproducible:
                  type: boolean
                tag1:
                  type: string
                tag2:
                  type: string
                attachments:
                  type: array
                  items:
                    type: object
                    additionalProperties: true
                proofOfPayment:
                  type: object
                  additionalProperties: true
                skill:
                  type: string
                domain:
                  type: string
                context:
                  type: string
                capability:
                  type: string
                name:
                  type: string
                endpoint:
                  type: string
      responses:
        200:
          description: Build and optionally store an ERC-8004 feedback payload on Lens Grove
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AgentJsonPayload"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/auction/submitBid:
    post:
      operationId: buildAuctionSubmitBid
      summary: Build CCA submitBid calldata
      description: "Build CCA submitBid calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/gauge/vote:
    post:
      operationId: buildGaugeVote
      summary: Build gauge vote calldata
      description: "Build gauge vote calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/gauge/resetVotes:
    post:
      operationId: buildGaugeResetVotes
      summary: Build gauge resetVotes calldata
      description: "Build gauge resetVotes calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/ve4626/lock:
    post:
      operationId: buildVe4626Lock
      summary: Build ve4626 lock calldata
      description: "Build ve4626 lock calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/ve4626/extend:
    post:
      operationId: buildVe4626Extend
      summary: Build ve4626 extendLock calldata
      description: "Build ve4626 extendLock calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/ve4626/increase:
    post:
      operationId: buildVe4626Increase
      summary: Build ve4626 increaseLock calldata
      description: "Build ve4626 increaseLock calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/ve4626/unlock:
    post:
      operationId: buildVe4626Unlock
      summary: Build ve4626 unlock calldata
      description: "Build ve4626 unlock calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/ajna/borrow:
    post:
      operationId: buildAjnaBorrow
      summary: Build Ajna ERC20Pool drawDebt calldata
      description: "Build Ajna ERC20Pool drawDebt calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/ajna/repay:
    post:
      operationId: buildAjnaRepay
      summary: Build Ajna ERC20Pool repayDebt calldata
      description: "Build Ajna ERC20Pool repayDebt calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/ajna/addCollateral:
    post:
      operationId: buildAjnaAddCollateral
      summary: Build Ajna pledge collateral calldata
      description: "Build Ajna pledge collateral calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/ajna/removeCollateral:
    post:
      operationId: buildAjnaRemoveCollateral
      summary: Build Ajna pull collateral calldata
      description: "Build Ajna pull collateral calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/ajna/setMinBucketIndex:
    post:
      operationId: buildAjnaSetMinBucketIndex
      summary: "Build AjnaVaultAuth setMinBucketIndex calldata (admin, canonical nested path)"
      description: "Build AjnaVaultAuth setMinBucketIndex calldata (admin, canonical nested path) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/ajna/setIdleBufferBps:
    post:
      operationId: buildAjnaSetIdleBufferBps
      summary: "Build ERC4626StrategyAdapter setIdleBufferBps calldata (owner, canonical nested path)"
      description: "Build ERC4626StrategyAdapter setIdleBufferBps calldata (owner, canonical nested path) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/setCharmVault:
    post:
      operationId: buildCharmSetCharmVault
      summary: Build CharmStrategy4626 setCharmVault calldata (owner)
      description: "Build CharmStrategy4626 setCharmVault calldata (owner) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/setSwapPool:
    post:
      operationId: buildCharmSetSwapPool
      summary: Build CharmStrategy4626 setSwapPool calldata (owner)
      description: "Build CharmStrategy4626 setSwapPool calldata (owner) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/setUniFactory:
    post:
      operationId: buildCharmSetUniFactory
      summary: Build CharmStrategy4626 setUniFactory calldata (owner)
      description: "Build CharmStrategy4626 setUniFactory calldata (owner) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/setAutoFeeTier:
    post:
      operationId: buildCharmSetAutoFeeTier
      summary: Build CharmStrategy4626 setAutoFeeTier calldata (owner)
      description: "Build CharmStrategy4626 setAutoFeeTier calldata (owner) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/setParameters:
    post:
      operationId: buildCharmSetParameters
      summary: Build CharmStrategy4626 setParameters calldata (owner)
      description: "Build CharmStrategy4626 setParameters calldata (owner) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/setActive:
    post:
      operationId: buildCharmSetActive
      summary: Build CharmStrategy4626 setActive calldata (owner)
      description: "Build CharmStrategy4626 setActive calldata (owner) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/initializeApprovals:
    post:
      operationId: buildCharmInitializeApprovals
      summary: Build CharmStrategy4626 initializeApprovals calldata (owner)
      description: "Build CharmStrategy4626 initializeApprovals calldata (owner) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/rebalance:
    post:
      operationId: buildCharmRebalance
      summary: Build CharmStrategy4626 rebalance calldata (owner or vault)
      description: "Build CharmStrategy4626 rebalance calldata (owner or vault) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/ownerEmergencyWithdraw:
    post:
      operationId: buildCharmOwnerEmergencyWithdraw
      summary: Build CharmStrategy4626 ownerEmergencyWithdraw calldata (owner)
      description: "Build CharmStrategy4626 ownerEmergencyWithdraw calldata (owner) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/ownerEmergencyWithdrawFromCharm:
    post:
      operationId: buildCharmOwnerEmergencyWithdrawFromCharm
      summary: Build CharmStrategy4626 ownerEmergencyWithdrawFromCharm calldata (owner)
      description: "Build CharmStrategy4626 ownerEmergencyWithdrawFromCharm calldata (owner) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/vault/rebalance:
    post:
      operationId: buildCharmVaultRebalance
      summary: Build Charm/AlphaVault rebalance calldata (no-arg)
      description: "Build Charm/AlphaVault rebalance calldata (no-arg) Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
  /v1/build/charm/vault/setStrategy:
    post:
      operationId: buildCharmVaultSetStrategy
      summary: Build Charm/AlphaVault delegate/manager update calldata
      description: "Build Charm/AlphaVault delegate/manager update calldata Build-only: returns unsigned calldata. Requires an authenticated session or SIWA. The server does not broadcast the transaction."
      responses:
        200:
          description: Unsigned calldata
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnsignedCalldata"
        401:
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"
        429:
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorEnvelope"