Register a merchant wallet
create_walletRegister a receiving wallet the merchant controls. type=xpub for bitcoin (CoinVello derives a fresh address per invoice from the extended PUBLIC key); type=address for ethereum, base, arbitrum, optimism, polygon, bnb, avalanche, robinhood, solana, tron. Never pass a private key or seed phrase. The wallet is usable at once in live and test mode; addresses are validated strictly (format, checksum, network, no token contracts). For xpubs, show the returned first_address so the merchant can compare it with their wallet's first receive address. Signed-message verification (POST /wallets/{id}/verification then /verify) is optional and never required.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| xpub | No | xpub/ypub/zpub (BTC), tpub/upub/vpub (testnets) or an output descriptor. Required when type=xpub. | |
| chain | Yes | ||
| label | Yes | ||
| assets | No | Assets accepted at this address, e.g. ["usdc:polygon","usdt:polygon"]. Defaults to the native asset. Each must be listed by list_assets for the key's mode. | |
| address | No | Checksummed EVM address, Solana pubkey or Tron address. Required when type=address. | |
| enabled | No | ||
| metadata | No | Up to 50 string key/value pairs returned on the object and in webhooks. | |
| start_index | No | ||
| address_type | No | ||
| derivation_path | No | Account path such as m/84'/0'/0'. Inferred from the prefix when omitted. |