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
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
Get Bank By Id
Retrieving a bank requires an id
to be passed, usually this is base64
encoded.
- Rust
- TS
- CLI
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