---
title: "CreateWalletAddress"
method: POST
path: "/v2/vaults/{vault_id}/wallets/{wallet_id}/addresses"
tags: ["Wallets"]
---

# CreateWalletAddress

`POST /v2/vaults/{vault_id}/wallets/{wallet_id}/addresses`

## Request

- Base URL: `https://api.utila.io`
- URL: `https://api.utila.io/v2/vaults/{vault_id}/wallets/{wallet_id}/addresses`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/utila/apis/utila-api/docs/v2/vaults/:vault_id/wallets/:wallet_id/addresses/post.ts> (a function with typed inputs; its response is checked against the schema)

Generates a new address in a wallet for the specificied blockchain network.

The address is derived from the appropriate MPC key that is used by that blockchain,
i.e. ECDSA for Bitcoin and Ethereum, and EdDSA for Solana.
The MPC key will be selected automatically for you. If a key is not available,
an error will be returned.

Currently, creation of multiple addresses is supported only for UTXO-based blockchains.

Addresses in the EVM protocol family (Ethereum, Binance Smart Chain, etc.) generated in
the same wallet will share the same address. This abstraction is useful for DeFi applications,
where identical addresses are used across multiple blockchains.

## Path parameters

- `vault_id` string, required
- `wallet_id` string, required

## Request body

- V2WalletAddress
  - `name` string: The resource name of the WalletAddress. Format: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`
  - `displayName` string: A human-readable name. Relevant only for deposit addresses. Must match the regular expression `[a-zA-Z0-9\.,:\-'# _$]+$` and be shorter than 100 characters
  - `network` string, required: The resource name of the network of the address. Format: `networks/{network_id}`
  - `address` string: The blockchain address.
  - `format` 'BITCOIN_P2PKH' | 'BITCOIN_P2WPKH' | 'EVM' | 'TRON_BASE58' | 'BASE58' | 'TON_NON_BOUNCEABLE' | 'SUBSTRATE_58' | 'BITCOIN_P2TR': - BITCOIN_P2PKH: Bitcoin P2PKH address format. - BITCOIN_P2WPKH: Bitcoin P2WPKH address format. - EVM: Ethereum address format. - TRON_BASE58: Tron base58 address format. - BASE58: Solana address format. - TON_NON_BOUNCEABLE: Ton address format. - SUBSTRATE_58: Substrate address format. - BITCOIN_P2TR: Bitcoin P2TR (Taproot, BIP-341) address format.
  - `key` string: The resource name of the MPC key this address was derived from. Format: `vaults/{vault_id}/keys/{key_id}`
  - `keyDerivationPath` string[]: Derivation path of the address from the MPC key.
  - `type` 'MAIN' | 'DEPOSIT' | 'CHANGE': - MAIN: Main address (main address of the wallet). - DEPOSIT: Deposit address. - CHANGE: Change address.
  - `note` string
  - `createParams` V2WalletAddressCreateParams: Parameters only used during wallet address creation.
    - `btcDetails` V2WalletAddressCreateParamsBTCDetails: Bitcoin-specific creation parameters.
      - `format` 'P2PKH' | 'P2WPKH' | 'P2TR', required: Address format for a Bitcoin-based network. Subset of WalletAddress.Format restricted to Bitcoin-based values.

## Response `200`

A successful response.

- V2CreateWalletAddressResponse
  - `walletAddress` V2WalletAddress
    - `name` string: The resource name of the WalletAddress. Format: `vaults/{vault_id}/wallets/{wallet_id}/addresses/{address_id}`
    - `displayName` string: A human-readable name. Relevant only for deposit addresses. Must match the regular expression `[a-zA-Z0-9\.,:\-'# _$]+$` and be shorter than 100 characters
    - `network` string, required: The resource name of the network of the address. Format: `networks/{network_id}`
    - `address` string: The blockchain address.
    - `format` 'BITCOIN_P2PKH' | 'BITCOIN_P2WPKH' | 'EVM' | 'TRON_BASE58' | 'BASE58' | 'TON_NON_BOUNCEABLE' | 'SUBSTRATE_58' | 'BITCOIN_P2TR': - BITCOIN_P2PKH: Bitcoin P2PKH address format. - BITCOIN_P2WPKH: Bitcoin P2WPKH address format. - EVM: Ethereum address format. - TRON_BASE58: Tron base58 address format. - BASE58: Solana address format. - TON_NON_BOUNCEABLE: Ton address format. - SUBSTRATE_58: Substrate address format. - BITCOIN_P2TR: Bitcoin P2TR (Taproot, BIP-341) address format.
    - `key` string: The resource name of the MPC key this address was derived from. Format: `vaults/{vault_id}/keys/{key_id}`
    - `keyDerivationPath` string[]: Derivation path of the address from the MPC key.
    - `type` 'MAIN' | 'DEPOSIT' | 'CHANGE': - MAIN: Main address (main address of the wallet). - DEPOSIT: Deposit address. - CHANGE: Change address.
    - `note` string
    - `createParams` V2WalletAddressCreateParams: Parameters only used during wallet address creation.
      - `btcDetails` V2WalletAddressCreateParamsBTCDetails: Bitcoin-specific creation parameters.
        - `format` 'P2PKH' | 'P2WPKH' | 'P2TR', required: Address format for a Bitcoin-based network. Subset of WalletAddress.Format restricted to Bitcoin-based values.

## Changes

- **2026-11-03** `c4a910d79740`: 2 info
  - added the new optional request property `createParams`
  - added the optional property `walletAddress/createParams` to the response with the `200` status

[Operation history](https://skmtc.dev/utila/apis/utila-api/changes/v2/vaults/:vault_id/wallets/:wallet_id/addresses/post.md)

---

[API](https://skmtc.dev/utila/apis/utila-api.md) - [All operations](https://skmtc.dev/utila/apis/utila-api/llms.txt) - [OpenAPI document](https://skmtc.dev/utila/apis/utila-api/revisions/c4a910d79740?raw)
