Vault is a core banking system; it provides a System of Record (SoR) for value held across transacting bank accounts. This is achieved via operations like:
Account creation and lifecycle management
Posting credits/debits to the ledger
Deriving account balances from postings and updating them accordingly
Externally-facing APIs interfacing with Vault entities
This functionality is encapsulated in the Vault Platform Layer and is common across all Vault configurations and deployments per bank. However, banks differ in so many ways - with the obvious one being that they offer different products to their customers.
As well as providing an SoR, Vault is also a platform for developing financial products. This overview introduces the tool that Vault empowers developers with to create innovative financial products - Smart Contracts.
A Smart Contract is a piece of code that digitally enforces a particular financial agreement / Terms and Conditions (T&Cs) between various parties, one of them being the bank. Smart Contracts thus define the financial behaviour of an account; the protocol by which the balance is mutated.
A Smart Contract is a configurable template which you can use to create a financial product, such as a savings account or a current account with overdraft.
To begin creating financial products, there are ready-made Smart Contract templates that you can amend, or you can choose to write Smart Contracts without using ready-made templates.
You typically use a ready-made Smart Contract template, or previously-created Smart Contract, to create a template of your own, which you can then use for multiple accounts; for example, you can use one Smart Contract Savings Account template for many thousands of different savings accounts. You can then further change each instance of an account; for example to set different parameters for the interest payment day.
Developing products using Smart Contract templates is faster and easier than creating the products without templates; they are also easy to amend.