Creating wallets

The first step to building an embedded experience is to create a wallet for your end user. We recommend that you create a wallet per asset in your customer's account as this allows you to give your customers a permanent address to send crypto to when moving crypto from other platforms.

For this step, we will be using the Create wallet endpoint on the API. For example:

curl --request POST \
     --url \
     --header 'Accept: application/json' \
     --header 'Authorization: Hawk id="B9jnE1U8eLblzHtNeJZRxfcq03CQKcmcP9FOrACMzXb1HfrxrePWsTfuP70JNns9", ts="1633010032", nonce="guGXrD", mac="uKeg+w1qXqzaF/8mOQGv8Y9IlRxyxTT+iINLe03EQ60="' \
     --header 'Content-Type: application/json' \
     --data '
     "currency": "ETH",
     "description": "ETH wallet"

Let's look at what data you need to input to create a wallet for a customer:

currencystringCurrency code of the crypto currency you want to create the wallet for.
descriptionstringA unique name for this wallet to reconcile on your system.

Once you've sent the request the wallet you should receive a response like this:

  "id": 313675,
  "description": "customer123",
  "currency": {
    "id": 1773,
    "code": "ETH",
    "fiat": true,
    "icon": null,
    "name": "Ethereum",
    "withdrawalParameters": [],
    "options": {},
    "withdrawalFee": 0.4,
    "depositFee": 0,
    "supportsDeposits": true,
    "supportsWithdrawals": true,
    "quantityPrecision": 2,
    "pricePrecision": 2,
    "protocols": []
  "supportsWithdrawals": true,
  "supportsDeposits": true,
  "custodianWallet": false,
  "protocol": ERC20,
  "address": "0xEa61651823dEc1027565AFB908A0c5C06662cdBf",
  "lookup": null,
  "balance": 0,
  "available": 0,
  "withdrawalFee": 0,
  "depositFee": 0,
  "alternatives": null,
  "approxAvailable": "0",
  "approxBalance": "0"

You'll find in this response the address that you could choose to expose to your end-user, allowing them to transfer their crypto from another venue in, and the id to use when converting fiat you hold on the platform into the wallet (which we describe in the next step).