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

# Create Wallet

> Provision a new subwallet for an end-user under your merchant account

<Note>
  **Auth method: Signed (HMAC)** — this endpoint requires the full set of signed
  headers: `x-access-id`, `x-request-id`, `x-timestamp`, and an HMAC-SHA256
  `authorization` signature. See [Authentication](/api-reference/authentication#signed-hmac-authentication).
</Note>

## Example

<CodeGroup>
  ```javascript Node.js theme={null}
  const res = await fetch(`${BASE}/wallet`, {
    method: 'POST',
    headers: makeHeaders(),
    body: JSON.stringify({
      reference: 'user-8821',
    }),
  });

  const { data } = await res.json();
  /*
  {
    reference: 'user-8821',
    addresses: [
      { network: 'ethereum', address: '0xabc...', address_reference: 'ref-1' },
      { network: 'polygon',  address: '0xdef...', address_reference: 'ref-1' }
    ]
  }
  */
  ```

  ```python Python theme={null}
  res = requests.post(
      f"{BASE}/wallet",
      headers=make_headers(),
      json={"reference": "user-8821"},
  )
  data = res.json()["data"]
  # data["reference"]  → "user-8821"
  # data["addresses"]  → list of address objects
  ```
</CodeGroup>

## Headers

<ParamField header="authorization" type="string" required>
  Base64-encoded HMAC-SHA256 signature of the request payload using the API secret

  **Example:** `"5e73d044c44d733fcf819ad3409aaad..."`
</ParamField>

<ParamField header="x-timestamp" type="string" required>
  Current timestamp in ISO 8601 format

  **Example:** `"2025-03-15T09:45:53.000Z"`
</ParamField>

<ParamField header="x-request-id" type="string" required>
  Unique identifier for the request (UUID v4)

  **Example:** `"550e8400-e29b-41d4-a716-446655440000"`
</ParamField>

<ParamField header="x-access-id" type="string" required>
  Your API access ID provided by Tender

  **Example:** `"your-access-id-here"`
</ParamField>

<ParamField header="Content-Type" type="string" required>
  **Example:** `"application/json"`
</ParamField>

## Body

<ParamField body="reference" type="string" required>
  A unique identifier for this wallet within your merchant account. Use your own user ID or any
  stable string — it must be unique across all wallets you create.

  **Example:** `"user-8821"`
</ParamField>

## Response

<ResponseField name="status" type="string" required>
  **Example:** `"success"`
</ResponseField>

<ResponseField name="message" type="string" required>
  **Example:** `"success"`
</ResponseField>

<ResponseField name="data" type="object" required>
  <Expandable title="data properties">
    <ResponseField name="reference" type="string">
      The wallet reference you provided.

      **Example:** `"user-8821"`
    </ResponseField>

    <ResponseField name="addresses" type="array">
      Blockchain addresses provisioned for this wallet.

      <Expandable title="address object">
        <ResponseField name="network" type="string">
          The blockchain network.

          **Example:** `"ethereum"`
        </ResponseField>

        <ResponseField name="address" type="string">
          The blockchain address.

          **Example:** `"0xabc123..."`
        </ResponseField>

        <ResponseField name="address_reference" type="string">
          An internal reference for this address slot.

          **Example:** `"ref-1"`
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>


## OpenAPI

````yaml POST /v1/api/wallet
openapi: 3.1.0
info:
  title: Tender API
  description: Tender Developer API for cryptocurrency payments and agent management
  version: 1.0.0
  contact:
    name: Tender Support
    url: https://tender.cash
servers:
  - url: https://secureapi.tender.cash
    description: Production Server
  - url: https://sandbox-api.tender.cash
    description: Sandbox Server
security:
  - SignedAuth: []
tags:
  - name: Agents
    description: Manage agents and sub-businesses
  - name: Transactions
    description: Payment and transaction operations
  - name: System
    description: System information and configuration
  - name: Webhooks
    description: Webhook management and logs
  - name: On-ramp
    description: Fiat-to-crypto on-ramp operations
  - name: Payouts
    description: Send crypto from merchant balance to a wallet address or payout account
  - name: Subwallets
    description: Provision and manage crypto wallet infrastructure for your end-users
paths:
  /v1/api/wallet:
    post:
      tags:
        - Subwallets
      summary: Create Wallet
      description: Provision a new subwallet for an end-user under your merchant account.
      operationId: createSubWallet
      parameters:
        - name: authorization
          in: header
          required: true
          schema:
            type: string
        - name: x-timestamp
          in: header
          required: true
          schema:
            type: string
            format: date-time
          example: '2025-03-15T09:45:53.000Z'
        - name: x-request-id
          in: header
          required: true
          schema:
            type: string
            format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
        - name: x-access-id
          in: header
          required: true
          schema:
            type: string
          example: your-access-id-here
        - name: Content-Type
          in: header
          required: true
          schema:
            type: string
          example: application/json
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - reference
              properties:
                reference:
                  type: string
                  description: >-
                    A unique identifier for this wallet within your merchant
                    account.
            example:
              reference: user-8821
      responses:
        '200':
          description: Wallet created successfully
          content:
            application/json:
              example:
                status: success
                message: success
                data:
                  reference: user-8821
                  addresses:
                    - network: ethereum
                      address: 0xabc123...
                      address_reference: ref-1
                    - network: polygon
                      address: 0xdef456...
                      address_reference: ref-1
      security:
        - SignedAuth: []
components:
  securitySchemes:
    SignedAuth:
      type: apiKey
      in: header
      name: authorization
      description: >-
        Signed (HMAC) authentication. Required headers: x-access-id,
        x-request-id (UUID v4), x-timestamp (ISO 8601), and authorization
        (Base64 HMAC-SHA256 signature of {timeStamp, requestId, accessId} using
        your access secret).

````