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.
Smart Contracts implement such T&Cs in a subset of Python developed specifically for Vault, which interacts with the core banking system by:
Initiating postings into the account (e.g. interest payment, fees)
Making accept/reject decisions on incoming postings (incoming card authorisations, credit card repayments)
And much more, covered in this documentation