Got asked to move money? Don't build it from scratch.

































Built for developers who move money
Ready to get started?
Perfect for any idea you want to build






Deploy your ledger infrastructure in one click
Explore with our sandbox and seamlessly switch to production whenever you're ready to go live.
Your resources aren't shared. You get isolated compute and storage to handle up to 300,000 transactions per minute.
Enjoy up to 7-day backups with point in time recovery included for your ledger data.
Your data isn't locked in. Deploy and safely connect to your hosted data whenever you need to.
Build any transaction workflow, fast.
Implement what used to take days in minutes — from simple to complex workflows.
It's like legos. Combine building blocks to craft the workflow that fits your product.
Enforces accuracy, traceability, and compliance in every transaction.

Build with tools you already use
You can use Blnk with any programming language, framework or stack.
Plug Blnk into your existing apps and systems without rebuilding your core logic.
Get started in 5 minutes with our comprehensive docs or get answers from our Discord community.
1
2
3
4
5
6
7
8
9
10
11
-H 'Content-Type: application/json' \
-d '{
"amount": 1230.12,
"precision": 100,
"currency": "USD",
"source": "@FundingPool",
"destination": "@Frederick-Bates",
"reference": "ref_funding_001",
"description": "Wallet funding"
}'
1
2
3
4
5
6
7
8
9
10
11
const tx = await blnk.transactions.create({
amount: 1230.12,
precision: 100,
currency: "USD",
source: "@FundingPool",
destination: "@Frederick-Bates",
reference: "ref_funding_001",
description: "Wallet funding"
});
}
1
2
3
4
5
6
7
8
9
10
11
12
13
client := blnk.NewClient("http://localhost:5001")
client.Transactions.Create(context.TODO(), blnk.Transaction{
Amount: 1230.12,
Precision: 100,
Currency: "USD",
Source: "@FundingPool",
Destination: "@Frederick-Bates",
Reference: "ref_funding_001",
Description: "Wallet funding",
})
}
1
2
3
4
5
6
7
8
9
10
11
requests.post("http://localhost:5001/transactions", json={
"amount":1230.12,
"precision":100,
"currency":"USD",
"source":"@FundingPool",
"destination":"@Frederick-Bates",
"reference":"ref_funding_001",
"description":"Wallet funding"
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
"amount" => 1230.12,
"precision" => 100,
"currency" => "USD",
"source" => "@FundingPool",
"destination" => "@Frederick-Bates",
"reference" => "ref_funding_001",
"description" => "Wallet funding"
]),
]);
curl_exec($ch);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.uri(URI.create("http://localhost:5001/transactions"))
.header("Content-Type","application/json")
.POST(HttpRequest.BodyPublishers.ofString("""
{ "amount":1230.12,
"precision":100,
"currency":"USD",
"source":"@FundingPool",
"destination":"@Frederick-Bates",
"reference":"ref_funding_001",
"description":"Wallet funding"
}
"""))
.build();
HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.discarding());
"id": "txn_6164573b-6cc8-45a4-ad2e-7b4ba6a60f7d",
"status": "APPLIED",
"created_at": "2025-10-12T01:36:46.997063436Z",
"amount": 1230.12,
"precision": 100,
"precise_amount": 123012,
"currency": "USD",
"source": "@FundingPool",
"destination": "@Frederick-Bates",
"reference": "ref_funding_001",
"description": "Wallet funding"
}
Get a 360-degree view into your ledger
View and navigate all of your ledger information in one place with powerful, flexible tables.
Perform back-office actions directly from the dashboard: create records, commit, or refund transactions, etc.
Stop building boring dashboards. With Insights, turn your ledger data into beautiful, interactive visualizations at a glance.



























