Introduction

Everyday, the world processes billions of transactions, thanks to the power of the internet.

Engineering teams, across the world, work tirelessly to ensure 99.999% uptime and reliability on all financial services offered by their respective organizations. Beneath these is a very complex network of operations from sending and accepting payments, money movement, store of value, identity management, and compliance to name a few. Each of these operations present different models and processes that developers have to cater for while building financial applications.

For any financial application, developers need to guarantee that all transactions are accurately recorded and accounted for in a way that’s useful for internal operations and relevant external parties. To do this, they typically build a ledger — a log of all transaction records within their application. But it can be very difficult to keep up with the network of financial operations that the real world operates in without deep financial engineering experience.

Hence, the Blnk Ledger. Blnk was designed as a comprehensive open-source ledger that keeps this flux manageable and structured for you and your team. It provides you with basic and advanced tools that lets you set up how money is stored and moved within your application.

The Blnk Ledger models all money movement and storage with common accounting patterns to ensure accurate records of every transaction in your application. Moreover, its deployment instantly simplifies complex money movement workflows and further guarantees easy transaction tracking and monitoring regardless of the level of complexity.

Who needs Blnk?

Blnk was designed for individuals, teams and startups building financial applications — founders, developers, product managers, etc. With Blnk, you can explore a better alternative to building financial applications in today’s constantly evolving world.

Whether you are building a bank, fintech application, payments infrastructure or embedding financial services in your organization, Blnk empowers you with the knowledge and tools you need to build a system that works seamlessly. We implore you to patiently explore the documentation to discover how your application best benefits from the Blnk Ledger.

Blnk also makes it easy to collaborate with other internal and external departments who need access to your application’s transaction records — settlements and reconciliation, transaction security, fraud prevention and AML, finance and accounting, and even management. It’s 100% in your power to build the most transparent network of systems for your organization with Blnk.

How does Blnk fit into your architecture

Blnk is a ledger best applied for your transaction records. It is not designed to be a general-purpose store for all of your application data. The context of your application setup decides how you use Blnk; there’s no single correct way to use Blnk.

Here is one example of how you might integrate a wallet system with Blnk.

You can keep the user data in your existing database. Then create a balance (representing the wallet) in Blnk with the same identifier to map it back to the user profile in your existing database.

When you need to process transactions between balances, you store those transactions on Blnk. You can use Blnk’s built-in capabilities to perform advanced transaction logic such as overdrafts, multiple sources/destinations, inflight transactions, scheduling transactions, refund transactions, etc.

When you need to fetch or prepare a report on transactions, you can use our Search API.

Blnk also supports a wide range of query syntaxes for searching all data collections (ledgers, ledger balances, and transactions) in your Blnk Ledger.

Our principles

Blnk wants to help you build great financial applications. We believe these principles make up the foundation of any great financial application today.

Accuracy and correctness

All transaction records must be accurate to the smallest unit. Beyond ensuring trust within your organization and your users, paying a keen attention to detail to all of the activities happening in your financial application.

Scale and reliability

Scale can mean different things to different teams. However, at its core, designing for scale means your system can easily adapt to gradual or sudden changes in your financial system without the risk of breaking your application or losing data.

Security

Financial data is sensitive, important data. To care about security means you care about the integrity of your data — you can confidently trace and explain every activity that goes on in your financial application. Ensuring balance monitoring, transaction immutability, and flexible controls are a few ways Blnk helps you commit to a secure financial system.

How Blnk is designed

Any transaction activity can be grouped into three main phases — money out (debit from a source), money in (credit to a destination), and store of value. Blnk represents all activity in your application with a common structure that can be easily read and analyzed.

Anatomy of a transaction

This is how we approached it:

  1. Blnk is designed on top of the Double Entry Accounting Principle, and models the behaviour of all transactions with it. It states that every credit entry must have a corresponding debit entry. In practice, in Blnk, every transaction record is designed to always have a source and destination; the source holds the debit entry while the destination holds the credit entry.

  2. Blnk groups these transaction records through the concept of ledgers and balances to ensure accurate computation of balance amounts, quick filtering of records, precise bookkeeping of your organization’s chart of accounts and your users’ wallets & accounts, etc.

This approach abstracts the individual differences between the underlying systems (settlement accounts, external balances, users’ wallets and accounts, etc.) in your application and ensures that they all communicate well with each other.

Blnk as a database framework

Blnk guarantees an accurate data representation of all financial activities in your application. As a database, it uses the concept of folders and files to store transaction records.

An illustrated diagram of how the Blnk Ledger works using the traditional file manager as an example. Ledgers are the folders; you click a ledger to see a list of all the balances grouped in it; and you click on a Balance to see the transaction records tied to the balance.

As stated earlier, every transaction recorded in Blnk must have a defined source and destination. These locations are referred to as Balances. In any application, you can have an infinite number of balances depending on your use case, and the more balances you have to manage, the higher the risk of chaos.

To manage this, you need a “file manager.” Traditionally, file managers allow you create folders to group similar files together for easy navigation or reference. Blnk uses Ledgers as folder to manage and store your Balances. This allows Blnk to scale as your application scales with no limit to how much data it helps you manage and store.

Modelling with the double-entry principle

The Double Entry principle enables Blnk to guarantee that all transactions in your application are fully accounted for. This give us a tangible proof of correctness when computing our balances or fetching transaction records. If you don’t know what Double Entry means, here’s an introductory guide: An Engineer’s Guide to the Double-Entry principle with Blnk.

Blnk uses the double-entry concept in a more innovative context. Instead of just representing cash flow in and out, we use it to represent other activities and behaviours that may not involve physical movement of money — currency conversion, inter-wallet transfers, billing, etc. We use the same concept to link these systems with our Ledger and ensure consistency and accuracy across our application

Handling complexity

Blnk efficiently handles the complexity that comes with managing disconnected data sources or accounts within your financial application. Instead of separately monitoring money movement between your users’ balances, internal settlement accounts, and third-party balances, Blnk models all of them as balances with connected workflows moving money in one single system.

We track individual transactions through their entire lifecycle, from initiation at their source to delivery at their respective destination. Blnk guarantees detailed transaction tracing at any scale — small, medium or large.

Flexibility and control

The Blnk Ledger is use case-agnostic. Developers can architect their ledgers and balances in any design they choose based on the unique needs of their application, and what kind of data they want to track and monitor. If you don’t know how to do this, here’s a guide on designing ledger architecture.

Additionally, Blnk is equipped with advanced features to help you efficiently implement complex transaction and money movement workflows with less code.

Connected money movement workflows

Consider a user sending USD from a NGN balance in an application. This requires moving money between internal accounts, debiting the sender’s account, reconciling money movement with third-party balances, etc. This workflow can span multiple internal systems with different actions happening at different times.

You can model this workflow with Blnk, executing and representing all actions within your ledger.

Immutability

The Blnk Ledger is an immutable log for all financial activities in your application. Recorded transactions cannot be deleted or modified. This ensures that we can trace and audit any transaction at any point in time. It also means you can trust and explain any issues with your ledger.

Getting started

The best time to use Blnk was an hour ago; the next best time is right now. We’ve grouped the developer documentation into sections below for you to easily get set up and further discover what Blnk has in store for you.

You can also join our growing Discord server of other people like you building financial applications across the world. Share your questions about getting started or find answers to a problem you can’t solve.