Assistive Financial Decision-Making. Smart Contracts and AI Create New Opportunities

Lu Mao
gft-engineering
8 min readJun 19, 2024

--

Consumers are overwhelmed by the rich landscape of financial products that have been developed by banks. At the same time, banks are keen to compete to provide even more products that serve niche requirements. To help consumers navigate through the maze of products to find the ones that suit them and to help banks effectively offer new products that consumers can find and make use of, GFT has developed an intelligent banking assistant. This assistant uses smart contracts, simulation, and AI to help customers find the loans and savings accounts that will best suit them.

There are three technologies that we have integrated to create a new way of offering financial advice to customers.

Smart contracts: a financial product or an agreement can be described formally as a contract between a customer and a bank. The contract describes the obligations that the customer is signing up to and the offer that the bank will make in return. For example, the customer must keep their current account in credit, but if they do, the bank will pay them interest.

Simulation: a contract simulator can take the customer’s financial details and history and execute it over a smart contract. This allows a hyper-personalised view of the value of each product represented by a smart contract for this user to be created.

AI: Large Language Models and other machine learning systems can be used to create intelligent interfaces that can interact naturally and fluidly with consumers.

Figure 1. Providing assistance to customers using an AI Agent working with smart contracts and a simulator.

GFT used Thought Machine’s Vault Core as a smart contract and simulator platform. Utilising smart contracts, Vault Core introduces a paradigm shift akin to the evolution from manual transactions to digital banking, automating complex processes. Written in Python, these contracts encapsulate the financial product’s logic and operations, allowing for precise management, individual identification, and versioning for historical analysis. Vault Core’s smart contract simulator offers a tool for testing and financial forecasting, bolstering transparency and informed decision-making.

Bridging users and smart contract simulation with AI

Providing smart contract simulation as a tool for an AI agent to use allows a bridge to be built between the user and the technical opportunity that smart contracts provide. The banking assistant translates user queries into smart contract parameters and automates the complex processes of setting up and running the simulation into a simple interaction powered by a friendly chat interface.

By chatting with the assistant, the user can access the following functionality:

• Personalised financial simulation: By incorporating the user’s historical financial data, such as monthly net balances, our intelligent assistant not only identifies but also simulates financial products tailored to the user’s unique financial journey.

• Product selection and discovery: using the simulations, the agent is able to rank products for review by the customer. This allows the customer to explore the use of products that they may otherwise not have known about and to select between products on the basis of concrete information about the product’s utility for them.

Example dialogue

An example of how this works is shown in the dialogue below:

Figure 2. A dialogue with the banking assistant using a smart contract simulator in the back end. The user asks about products, the simulator is used to find appropriate products and provide projections about them based on the user’s history and financial position. The user can ask assistant to filter (>3%) or tune their recommendations (+£300pcm)

In Figure 2. A simple dialogue is shown.

  1. The user asks for an overview of savings accounts — note the open nature of the request. As LLMs are used to process the input, we can account for colloquial or informal language.
  2. The system queries the library of smart contracts that represent the available products provided by the bank and produces the list of simulations that are available for the user.
  3. After reviewing the list, the user wants to filter the recommendations for products that offer more than 3% interest.
  4. Then the user wants to see what happens if they commit to depositing £300 pcm in the account.

Note, the customer is asking open questions that might matter to them, rather than being prompted to select accounts based on the features that the bank thinks are important.

Business value

Our solution presents benefits, both for financial institutions and their customers:

  • Customers are offered a natural language interface to the bank; this will not suit every user as many will continue to prefer traditional apps, but as banking consumer demographics change and become more diverse, this affordance may be important.
  • Customers can access complex and sophisticated processes that can provide detailed information on opportunities that they would otherwise have been unaware of.
  • Customers do not have to rely on generic illustrations and projections, but instead have detailed and personalised information to base their decisions on.
  • Banks can offer niche products that will be highlighted to the customers who could make use of them. This will allow banks to differentiate themselves and more effectively target specific customer profiles.
  • Customers can get a better understanding of the gain and loss from subscribing to a financial product. This support is curial as financial products evolve and increase in complexity, ensuring that all users, regardless of their expertise, can effectively engage with their banking choices.

In conclusion, the integration of smart contracts and simulation with AI and Vault Core represents a step forward in financial product management and customer service. By automating complex processes, personalising customer experiences, and providing clear financial simulations, we are not just anticipating the future of finance; we are actively creating it.

How we developed the proof of concept

To demonstrate our new approach, we have developed a set of simple savings accounts using a smart contract parameterised with AER and minimum deposit threshold. We simulate each contract using the same set of a user’s historical net balance. Each simulation task runs for a period (e.g. equivalent to several months of time) and returns as the output the value of interest gained and fee charged, with which we can aggregate and derive the gross balance. We then collate the gross balance of each product and populate a comparison table. The user can use such a comparison table as the base to select the savings products.

The savings contract we created contains the following types of financial terms:

1. Scheduled monthly interest accrual: Interest is calculated monthly based on the account balance.

2. Scheduled monthly average deposit check: Every month, the simulation checks if the average deposit meets the minimum threshold.

3. Minimum deposit fee application: If the average deposit is below the threshold, a fee is charged.

We provide this contract (as plain Python code) in a simulation script (in JSON format) as the input to a smart contract simulation:

For various financial products, we offer adjustable parameters in the simulation script, such as the annual equivalent rate (AER), minimum deposit threshold, and minimum deposit fee, allowing for customisable contract configurations.

Additionally, we input a set of transactions into the savings account based on two main approaches:

(1) Historical spending balance: We query the Thought Machine for the interval balance of the past K months. Using this data, we calculate the monthly net balance and deposit any positive amounts into the savings account.

(2) User-specified savings amounts: We use large language models (LLMs) to extract intended savings amounts from user queries, such as a user stating, “I would like to save £300 a month.” We then simulate deposits of £300 per month for K months into the account.

Another feature leverages LLMs to infer simulation parameters, such as AER, from user queries. The user may express interest on a particular range of AER indicated in their query: I am looking for a higher interest rate saving than my saving in my current bank e.g. above 3.5%

Upon completing the simulation, we collect data on accrued interest and any applied minimum deposit fees. These financial metrics are then organised into a table to illustrate how the user’s gross balance evolves over the simulated period (e.g., 5 months).

Here is an example of the response we received from the simulator:

From the response result, we collect the accrued interest amount and the charged minimum deposit fee if any is applied.

We take this financial data and collate it into a table to illustrate to the user how their gross balance changes over the period e.g. the 5 months, we simulated.

We run the simulation against every savings product in the scope of the user’s interest. We finally provide a comparison table to the user across all the simulated products.

In addition to the comparison table, we also leverage LLMs to encode the data in the table into a natural language-based summary.

We finally append the disclaimer to the response:

--

--