Skip to content

Introduction

CoKeeps Hot Wallet empowers your platform with cryptocurrency capabilities, allowing you to focus on developing your products on Desktop, Web, or Mobile, while leveraging CoKeeps technology as your back-end engine for security and digital asset management.

Please review our Get Started document before proceeding with this guide.

Concept

Integrating with CoKeeps Hot Wallet requires simple additional setup on your back-end to establish communication for verification and notification. No Personally Identifiable Information (PII) of your users is transmitted in this communication, and it is not stored in the CoKeeps Hot Wallet data storage. Only Universally Unique Identifiers (UUIDs) are necessary to create the reference link.

Unlike conventional REST API communications, CoKeeps Hot Wallet does not allow API actions to be performed directly by your developers, such as using a token bearer or HMAC on behalf of your end users. Instead, each of your end users is provided with their own API key, and all communication is handled cryptographically. Therefore, using our front-end JavaScript SDK on your user-facing platform is necessary to conduct this security procedure. Your developers are merely providing the means for communication and do not control the data or authority of the communication.

Topology

Here is an overview of the integration setup:

bash
	 ┌───────────────────────┐     ┌──────────────────────────┐                                
                                
    User Front-End    CoKeeps Hot Wallet                                
                       ├─────┤     ┌─────────────────────────┐
	 └───────────────────────┘    - Withdrawal
                          ├─────┤     Back-End Service
	┌────────────────────────┐    - Signer Wallet
                        ├─────┤     └─────────────────────────┘
    Admin Front-End    - Deposit                                
                                
	└────────────────────────┘     └────────────┬─────────────┘                                
                                              
                                              
                                   ┌────────────┴─────────────┐                                
                                
   CoKeeps Cold Wallet                                
                                
   - Multi-Signature                                
                                
   - Gas Station                                
                                
                                   └──────────────────────────┘

User Front-End: This platform is where end users interact with functionalities such as logging in, checking balances, and performing transfers.

Admin Front-End: This platform is used by administrators to manage tasks like approving destination addresses and screening travel rule information.

Back-End Service: This platform provides CoKeeps Hot Wallet with necessary data to define user limitations and controls, ensuring that actions require consent from your organisation.

CoKeeps Cold Wallet: This encompasses CoKeeps Administration and CoKeeps Cold Wallet, serving as a governance platform to configure CoKeeps Hot Wallet behaviour, establish connections for selective multi-signature accounts, and provide access to smart contract functions for your platform.

Accounts Overview

Signer Wallet

This represents the single signature account for each user, enabling them to perform wallet functions, including interactions with smart contracts.

Please be aware that the transfer limits and destinations for transactions or smart contract interactions are determined entirely by the user or the controls you have implemented on your platform.

Deposit

Dedicated single signature accounts assigned to individual users to receive deposits from external sources. These accounts have limited functionality and are designed solely to sweep all balances to an assigned multi-signature holding account.

IMPORTANT

By default, each user's Deposit private key will change with every credential reset. However, any balance from the old Deposit accounts can still be recovered for sweeping.

Withdrawal

There are two types of withdrawal accounts:

  1. Single Signature: These accounts have no creation cost and entail lower transfer transaction fees. They are less secure and are not recommended unless the developer fully understands the implications.

  2. Multi Signature: These accounts have a creation cost and slightly higher transaction fees for transfers. However, they offer greater security and are the recommended method for withdrawals.

NOTE

Account setup occurs in the CoKeeps Administration and Cold Wallet.

Multi-Signature

These accounts can only be used via the CoKeeps Hot Wallet to create transaction requests. The transaction signing process still occurs in the CoKeeps Cold Wallet. Multi-signature accounts may include a machine signer, which becomes active only during account recovery procedures. Transactions are not limited to transfers but can also include smart contract methods.

NOTE

Account setup occurs in the CoKeeps Administration and Cold Wallet.

Gas Station

In blockchain ecosystems utilizing smart contracts, gas fees are essential for executing transactions involving the base asset (coin) as well as other tokens. These fees are typically deducted from the initiator's account balance. The Gas Station feature automates the process of ensuring that the required base asset is available in accounts when needed.

On the CoKeeps platform, all transfers except those involving the Omnibus account are conducted on the blockchain, necessitating payment of gas fees. For instance, when user A transfers funds to user B within Signer Wallet accounts.

The auto-fuel mechanism triggers transactions to replenish base asset balances whenever incoming or outgoing events occur. CoKeeps' system monitors account balances and initiates transfers as per the Gas Station's predefined parameters.

By implementing the Gas Station, users are relieved from the task of manually managing base asset levels and transferring funds to cover future transaction fees.

NOTE

The Gas Station setup is facilitated through the CoKeeps Wallet interface and requires activation via the CoKeeps Administration panel.

Environment and Chains

Blockchain networks such as the mainnet or testnet are identified by their chain ID, and the CoKeeps ecosystem does not have a "test" environment.

Here are two examples of chain information:

Example of a Coin: This represents the native currency of a blockchain.

javascript
// This is a coin
{
	"id": "solanadevnet",
	"name": "Solana Devnet",
	"base": "solana",
	"currency": "Solana",
	"symbol": "SOL",
	"decimals": 9,
	"token": null
}

Example of a Token: This token is managed by a smart contract within a blockchain.

javascript
// This is a SPL-Token token.
// Imported by Authoriser via the CoKeeps Cold Wallet 
{
	"id": "2d3b8da918b7ef3d9bf14260c13b2e5d3038d238b31b7931cc16c45d5f20027e",
	"name": "USD Coin - Circle",
	"base": "solana",
	"currency": "USD Coin",
	"symbol": "USDC",
	"decimals": 9,
	"token": {
		"type":"SPL-Token",
		"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
	}
}

Dynamic Transaction Pool

All transactions initiated through the CoKeeps Hot Wallet are queued in this pool. This pool serves multiple purposes, including maintaining historical records, monitoring procedures, and facilitating screening decisions. While some transactions are executed promptly, others may experience delays or require manual intervention.

NOTE

You may need to provide a WebHook for delayed processes.

Transaction records can be accessed via the REST API in a paginated format, allowing you to display this information on your own platform or compile reports. Additionally, transaction details are accessible directly through the CoKeeps Administration platform for easy viewing and management by your Authorisers.

Dynamic Ledger

The Dynamic Ledger pertains specifically to the Omnibus setup process. It serves as an off-chain ledger, tracking the relevant chain balances of your end users for whom you hold custody. These end users do not possess a Signer Wallet.

In certain cases, you may be obligated to store an off-chain ledger yourself to adhere to specific requirements. In this context, the Dynamic Ledger serves as an additional redundant backup and provides an alternative source to verify data integrity or resolve disputes.