Custody serves as the basis for all Solaris Digital Assets product offerings. It enables your customers to withdraw and deposit their crypto assets and instantly transfer them off-chain to other customers.

This page contains a high-level overview of the Custody API resources. Read the guides in this section to learn the details of how Custody works:


The SDA platform uses Entities to represent SDA partners and customers. An Entity can have one of the following types:

  • PARTNER: An SDA partner (i.e., you).
  • PERSON: A retail customer. Each PERSON Entity must correspond with a Person resource created using the Solaris Digital Banking API.
  • BUSINESS: A business customer. Each BUSINESS Entity must correspond with a Business resource created using the Solaris Digital Banking API.
  • REPRESENTATIVE_PERSON: An individual who can approve ApprovalRequests on a Transaction that belongs to another Entity. Each REPRESENTATIVE_PERSON Entity must correspond with a Person resource created using the Solaris Digital Banking API.

Click here to read more.


An ApprovalMethod defines the multifactor authentication (MFA) mechanism that an Entity uses to approve Transactions. You must create an ApprovalMethod for each Entity before they can make Transactions.

Click here to read more.


The contractual relationship between a customer and Solaris Digital Assets can be terminated by both parties. To initiate a contract termination, you must create a ClosureRequest. This resource keeps track of the termination status.

Click here to read more.


On the SDA platform, an Asset represents a single digital asset of some kind. This can be a cryptocurrency (e.g., Bitcoin), a token (e.g., ERC20), or some other type of digital asset.

Click here to read more.


An Account represents an aggregation of funds of a certain type owned by an Entity.

Each Account is associated with an Entity as well as an Asset. Accounts cannot be transferred between Entities. You can create many Accounts for individual Entities.

Click here to read more.


All Transactions belong to one of three general categories: deposits, transfers, and withdrawals.

Below is a list of possible type values:

Transaction type Definition
DEPOSIT The customer deposited funds to their SDA Account.
TRANSFER_INCOMING The customer received a transfer from another SDA Account.
TRANSFER_OUTGOING The customer transferred funds to another SDA Account.
WITHDRAWAL The customer withdrew funds to an external blockchain address.
WITHDRAWAL_FEE Fee charged by Solaris for withdrawing funds.

Click here to read more.


A Deposit is a type of Transaction that represents a single incoming blockchain-level transfer to some Account Address.

Click here to read more.


A Transfer represents an exchange of funds from one Account to another Account of the same Asset. This operation is not reflected externally as a blockchain transaction or any other observable event.

Click here to read more.


A Withdrawal is a Transaction that represents a transfer of funds from an SDA Account to an external blockchain-level address.

Click here to read more.

Ledger Entries

A Ledger Entry is an immutable accounting entry that describes a change to the Account balance.

The platform creates Ledger Entries when it processes transactions. A Ledger Entry always describes the change that occurred in the past.

Click here to read more.