Skip to main content

Banks

"Banks" on the ledger are used by our dashboard product, the CBDC admin, to determine which accounts are associated with which bank on the ledger. The "bank" object is just metadata and doesn't impact the functionality of the core ledger. Rather, services like the CBDC admin use the bank object to discover information about existing accounts on the ledger.

The "bank" object contains a few fields (beyond the standard owner and id). The bank object has both short_name and display_name. short_name is intended to be machine-readable, whereas display_name is meant to be human readable.

Next, there is a list of account refs. Each of these account refs contains the id of one of the bank's ledger accounts, and an account type. The account type can either be "CBDC or DRM". CBDC (central bank digital currency) represents a bank account that backs bank deposits 1:1 with currency. DRM (digital regulated money), on the other hand, represents an account backed by fractional reserves. This metadata is noted to allow the dashboard to display statistics about the different types of money on the ledger.

Generally, Banks will be managed by the operators of the ledger. If a new Bank wants to join the ledger, a ledger administrator will use the CBDC admin to create its accounts and the Bank object. By default, this is enforced with RBAC permissions that give the operator sole access to create bank objects. However, this is purely convention; Operators may choose more open permissions if they wish.

Model

API Calls

Create

Creating bank metadata requires filling out all fields.

Note: id is generated client-side (when not specified in the example).

  • Rust
  • TS
  • CLI
M10 REPLFOO

Update

Updating a bank can be done by specifying what fields you want to update.

id must be specified as the bank metadata item to be updated. Field mask is case sensitive, see protobuf structures.

  • Rust
  • TS
  • CLI
M10 REPLFOO

Get Bank By Id

Retrieving a bank requires an id to be passed, usually this is base64 encoded.

  • Rust
  • TS
  • CLI
M10 REPLFOO

Listing All Banks

Listing all banks has an optional paging parameter in most APIs, so that you can step through a ledger with many. It is recommended to use zero as a limit page parameter and null for lastId.

  • Rust
  • TS
  • CLI
M10 REPLFOO