Introduction
This series is designed for Vault version 4.0 and later, using Smart Contracts API version 3.X.X.
This tutorial series will introduce you to the concept of Smart Contracts in Vault and to teach you how to write a simple Smart Contract yourself.
A Smart Contract is the representation of the financial logic of a given bank Product. Written in a safe subset of Python, it allows to deterministically describe the behaviour of a Product for all events of its life-cycle.
The first step to writing a smart contract is gathering your requirements and designing how you want your smart contract to operate. For this tutorial, we are going to use a simple Current Account Product with an Overdraft facility. This product will allow the customer to spend money, enter an overdraft and charge them a fee when they withdraw past their overdraft limit nonetheless paying a small amount of interest on positive balances.