Custodial vs Non-Custodial
This page describes how to set up custodial or non-custodial wallets.
If you are looking for a custodial solution, where Venly takes on the custodial role and responsibility: please have a look at our Widget solution.
With the Wallet-API solution, Venly is considered the technology provider. As a client, you have the option to create custodial (where you become custodian) or non-custodial wallets.
The difference is explained below.
Description | Advantages | Consequences | |
---|---|---|---|
Custodial Wallet | As custodial you take custody of the private key needed to access the user's wallet.
Note that from a technical viewpoint, Venly provides all the services and security needed to store and manage the private keys of your users. You will not need to store the keys yourself. | Usability
In the custody solution, users can be assisted when they lose access to their wallet (e.g. they forgot their PIN code). Venly can recover the private keys in this case and reset the PIN codes for the user.
Full control
As you are considered the owner of the created wallets, you have full control over them. The custody solution allows for flows and use cases where you need to access the user's-wallets, without their interaction. | Compliance
You are considered the custodian of the wallets and are therefore required to comply with the necessary AML/KYC regulations (if applicable). |
Non-custodial Wallet | In a non-custodial solution, the end-user has sole responsibility for protecting their holdings.
The user's wallets are not accessible by Venly or you, without user interaction.
Note that from a technical point of view, Venly will still be in charge of storing and managing the private keys. Venly is however never able to access these keys. | Faster go-to-market
Compliance regulations are lighter, therefore allowing you to setup a solution faster. | Wallets are unrecoverable
If a user would lose access to their wallet, you, nor Venly, is able to recover these wallets. Wallet access will become the sole responsibility of the end-user.
User interaction needed
For each wallet-interaction (e.g. initiating a transfer), user interaction is needed. The user is required to enter their PIN code / sign for the request, before it can be executed.
The raw PIN Code can therefore never be stored in your system, it should always be provided by the user. |
POST /api/wallets
{
"pincode" : "1234",
"description" : "My first custodial wallet",
"secretType" : "MATIC",
"walletType" : "WHITE_LABEL"
}
POST /api/wallets
{
"pincode" : "1234",
"description" : "My first non-custodial wallet",
"secretType" : "MATIC",
"walletType" : "UNRECOVERABLE_WHITE_LABEL"
}
Last modified 1mo ago