Creating wallets

The first step to building an embedded experience is to create a wallet for your end user. We recommend you create a wallet per user per asset - instead of pooling assets together - as this makes it much easier to track balances for your end users without having to manage liquidity and the location of funds.

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

curl --request POST \
     --url https://api.sandbox.bvnk.com/api/wallet \
     --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": "customer123"
}
'

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

Parameter

Type

Description

currency

string

Currency code of the crypto currency you want to create the wallet for.

description

string

A unique name for the wallet that you'll use to allocate this to your end user.

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 platform into the wallet (which we describe in the next step).


Did this page help you?