Self-hosted wallet verification
Self-hosted wallet verification is the process of confirming ownership of a blockchain wallet address. This verification may be required before transferring virtual assets from a Virtual Asset Service Provider (VASP) to a non-custodial or self-hosted wallet. By implementing this process, VASPs can ensure that users are sending assets from their centralized accounts to wallets they personally own.
CryptoSwift supports the following wallet verification methods:
- Cryptographic Signature Proofs
- Micro Transactions (also known as the Satoshi test) (in Beta)
- Wallet Screenshots (in Beta)
- Self-Declaration (in Beta)
Cryptographic Signature Proofs
Cryptographic signature proofs are widely recognized as the industry standard for verifying wallet ownership. This method involves the user signing an off-chain message using their private keys, which can then be validated against their blockchain address. This process provides cryptographic assurance that the user controls the private keys for the wallet to which they intend to transfer funds.
CryptoSwift strongly advocates for the use of open-source, industry-standard solutions for signature proofs. Among the available options, Wallet Connect (now known as Reown) stands out as the most robust solution, offering the broadest wallet compatibility. It supports over 450 different wallets across different networks (Bitcoin, Etherum, Solana, Optimism, Arbitrum, Base, Polygon, BNB, Avalance and Cosmos among others). You can see the list of all supported wallets here.
Visit Reown or explore Reown docs to get started.
Integration
You can currently set up a direct integration with Reown to store the verification data for a self-hosted wallet.
(A dedicated CryptoSwift API call is currently in development that will help simplify this further.)
Also see the web based Wallet Connect demo.
Other blockchains
For self-hosted wallets that Wallet Connect does not support (like different bitcoin wallets), but that support user-supplied signatures, a custom implementation can be set up using the AOPP protocol.
See our AOPP implementation guide for more details.
Micro Transactions (Satoshi test)
A Satoshi test is a verification method where a specific amount of cryptocurrency is sent from the destination wallet address within a designated time frame to verify ownership and control of the wallet's private keys. The CryptoSwift API has support for micro transactions/Satoshi test.
This feature is currently under development.
Wallet Screenshots
The CryptoSwift API supports wallet screenshots as a method for proof of ownership.
This feature is currently under development.
Self-Declaration
CryptoSwift offers a checkbox declaration option, allowing users to confirm that they are the rightful owners of the self-hosted wallet address.
This feature is currently under development.