> ## Documentation Index
> Fetch the complete documentation index at: https://docs.caminotreasury.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Wallet

> Creates a new server-managed wallet. The Ethereum address is generated automatically. The body is optional — omit it entirely or send `{}` to create an unlabeled wallet (server will auto-assign `Wallet N`, where N is the next number for the organization).



## OpenAPI

````yaml /api-reference/openapi.json post /wallets
openapi: 3.1.0
info:
  title: Camino Treasury API
  description: >-
    API for managing treasury wallets, tracking transfers (on-chain and fiat) in
    a unified feed, depositing into C0, withdrawing to wallets, and claiming
    yield distributions.
  version: 1.0.0
servers:
  - url: https://api.caminotreasury.com/v1
security:
  - apiKeyAuth: []
paths:
  /wallets:
    post:
      tags:
        - Wallets
      summary: Create Wallet
      description: >-
        Creates a new server-managed wallet. The Ethereum address is generated
        automatically. The body is optional — omit it entirely or send `{}` to
        create an unlabeled wallet (server will auto-assign `Wallet N`, where N
        is the next number for the organization).
      operationId: createWallet
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                label:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: >-
                    Human-readable name. If omitted, the server assigns `Wallet
                    N` where N is the next available number for the
                    organization.
      responses:
        '201':
          description: Wallet created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/IdempotencyInFlight'
        '422':
          $ref: '#/components/responses/IdempotencyMismatch'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: true
      description: >-
        Caller-chosen string (≤256 chars) that uniquely identifies this request.
        Resending the same key replays the original response; reusing the same
        key with a different body returns 422. Keys are scoped per organization.
      schema:
        type: string
        minLength: 1
        maxLength: 256
  schemas:
    Wallet:
      type: object
      required:
        - address
        - createdAt
        - updatedAt
      properties:
        address:
          type: string
          description: >-
            Ethereum wallet address (lowercase). Used as the wallet's identifier
            across the API.
          example: '0x742d35cc6634c0532925a3b844bc454e4438f44e'
        label:
          type: string
          nullable: true
          description: Optional human-readable label
        createdAt:
          type: string
          format: date-time
          description: Creation timestamp
        updatedAt:
          type: string
          format: date-time
          description: Last update timestamp
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Error message
        details:
          type: object
          description: Optional validation details
  responses:
    BadRequest:
      description: Bad Request - Invalid input
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    IdempotencyInFlight:
      description: >-
        Conflict — a request with the same Idempotency-Key is still in flight.
        Wait and retry.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    IdempotencyMismatch:
      description: >-
        Unprocessable — the Idempotency-Key was previously used with a different
        request body.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Too Many Requests - Rate limit exceeded. Check the `Retry-After` header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication. Pass your key in the `x-api-key` header.

````