Skip to Content
Use case · Fintech and digital assets

A crypto walletthat trades sixdigital assets

We built a crypto wallet for web and mobile, and the transaction engine behind it. Customers deposit and withdraw rand, send funds to other wallets, and buy, sell and swap crypto from one account, on a platform the owner runs.

6digital assets traded, from Bitcoin to stablecoins6transaction types in one engine
ExchangeCustody providerSeparate app???Checked by handBalances in someone else’s systemMobile walletIllustrationTotal balanceR 48 210BTC0.042ETH1.20USDC850XRP420BuySellSwapSendSwapSwap BTC to USDCSent for processingTransactionengineDepositWithdrawalTransferOTC dealSpot tradeSwapSwapWeb walletIllustrationToken balances6 assetsand 2 more assetsBTC0.0420.030ETH1.20USDC8501 290XRP420Swap BTC to USDCWorkflowRequestedApprovedSettledBalance snapshotBalances updated and readyThe wallet loads quickly
The problem

Offering crypto on someone else’s platform

When customers ask for crypto, the quick answer is a partner: an exchange for the trades, a custody provider for the coins and an app that runs on their terms. That holds until your team has to answer for it. The balances live in the partner’s system, so every trade, swap and withdrawal gets checked by hand against an export, and approvals for big withdrawals end up in email threads.

Morning checkIllustrationEXCHANGE EXPORTOUR LEDGER08:0009:4010:55DepositR 5 000DepositR 5 000Buy0.40 ETHBuy0.40 ETHWithdrawalR 12 000WithdrawalR 12 000Swap0.03 BTCNot foundSend120 USDCSend120 USDC?1 swap doesn’t matchApprove withdrawal R 250 000Can someone sign this off?Re: Approve withdrawal R 250 000Who approved the last one?Re: Re: Approve withdrawal R 250 000Still waiting on thisApproval still waiting

Balances you can’t see

Customer balances sit in the partner’s system. When a customer asks where their money is, support logs a ticket with the partner and waits.

The morning reconciliation

Someone downloads the exchange export and checks it line by line against your ledger. One missing swap can take the whole morning to find.

Approvals in email threads

A large withdrawal waits on a reply-all chain, and the approval trail is spread across inboxes, which is the first thing an auditor asks for.

A tool for every transaction

Deposits sit in one system, trades in another and swaps go through a third, so one customer’s day is spread over three reports.

Wallets that slow down

Balances get worked out from the full transaction history each time a wallet opens. The busier your customers are, the longer they wait.

Someone else’s roadmap

Adding an asset or changing a rule means a change request to the provider, and their hosting and security rules become yours.

Your customers hold you responsible for a platform you don’t run.

Before and after

From a partner’s app to an engine you run

Flip the switch to see the same six jobs before and after the platform.

BeforeWith the system
  • Crypto offered through a partner’s app, on their termsCustomers hold, send and trade in your own wallet, on web and mobile
  • Customer balances live in the partner’s systemToken balances held for each customer, in the platform you run
  • Deposits, trades and swaps handled in separate toolsOne engine runs deposits, withdrawals, transfers, swaps, spot trades and OTC deals
  • Approvals for large withdrawals tracked in emailEach transaction moves through a defined workflow with its approvals
  • Exports checked by hand against the ledgerReconciliation runs as a workflow, with every step visible
  • Balances worked out from long transaction historiesBalances kept ready as snapshots, so wallets load quickly

Customers’ crypto in a partner’s app, checked against an export every morning.

One wallet and transaction engine that you run, in your own cloud.

How it works

How a trade moves through the platform

Follow one swap from the customer’s phone to the updated balance. Click through each stage.

01The customer trades in the wallet
02The engine takes the request
03The workflow runs the checks and approvals
04Balances update and reconcile
Stage 01

The customer trades in the wallet

Customers use the same wallet on web and mobile. They see their balances, deposit and withdraw rand, send funds to other wallets, and buy, sell or swap the supported assets.

Stage 02

The engine takes the request

Every transaction type goes through one transaction engine, from rand deposits and withdrawals to wallet-to-wallet transfers, swaps, spot trades and OTC deals, so there’s one place to look for any transaction.

Stage 03

The workflow runs the checks and approvals

Spot orders, swaps, deals and reconciliation run as BPMN workflows, with DMN tables for the decisions. Each step and approval is defined up front, and you can see which step every transaction is on.

Stage 04

Balances update and reconcile

When a transaction settles, the customer’s token balance is stored as a snapshot and history is read from one consolidated view, so the wallet stays quick as volumes grow. Reconciliation runs as its own workflow.

What we built

Six parts, one platform

The wallet customers use, the engine behind it and the cloud it runs in, built as one system.

01

Customer wallet

Web and mobile, one account.

A web and mobile wallet where customers see their balances, send funds and trade digital assets.

02

Transaction engine

Six transaction types in one service.

One service that handles rand deposits and withdrawals, wallet-to-wallet transfers, swaps, spot trading and OTC deals.

03

Six tradable assets

From Bitcoin to stablecoins.

Bitcoin, Ether, Dogecoin, Shiba Inu, USDC and XRP, with token balances held for each customer.

04

Workflow-driven processing

Every step and approval defined.

Spot orders, swaps, deals and reconciliation run as BPMN workflows, so every step and approval is defined and visible.

05

Fast balance reads

Quick as volumes grow.

Token balances are stored as snapshots and transaction history is read from one consolidated view, so the wallet stays quick as volumes grow.

06

Built for the owner’s own cloud

Their pipelines, their cluster.

The services and portals deploy through the owner’s own pipelines into their Kubernetes cluster.

Hover over a card for more.

What changes

What’s different for the people who run it

The jobs stay the same, but they now happen in one place you control.

Customers

Balances, deposits, sends and trades in one wallet with your name on it.

Operations

One engine and one transaction history to work from when something needs checking.

Risk and approvals

Approval steps are defined in the workflow and visible on every transaction.

IT and security

The services deploy through your own pipelines into your own Kubernetes cluster, so they run under your security rules.

On an ordinary day

A customer asks where their swap isSupport finds the transaction and the step it’s on.
A large withdrawal comes inIt goes to the approval step the workflow defines.
Month-end comes roundReconciliation runs as a workflow, on data that’s already in one place.
Built with

The stack behind it

.NET 10PostgreSQLCamunda 8 (BPMN and DMN)AngularIonicCapacitorKubernetesAzure DevOps
Questions we get

What people ask before they start

Do we have to replace the systems we already run?

No. The wallet and the transaction engine run as their own services on their own database, so they sit beside your current systems. Where they need to connect, we map that with you at the start.

Can it run in our own cloud?

Yes. This platform deploys through the owner’s own pipelines into their own Kubernetes cluster, so it runs on infrastructure they control and under their security rules.

Who decides the approval rules?

You do. Approvals and decisions are modelled as BPMN workflows and DMN tables, which your risk and operations teams can read as diagrams and tables. We set them up with you, and a rule change starts as a change to the model.

Which assets can it trade?

The platform we built handles six, from Bitcoin to stablecoins, with token balances held for each customer. Which assets you’d support, and in what order, is one of the first things we’d work through with you.

Does it work on phones?

Yes. The wallet is built with Angular, Ionic and Capacitor, so customers get the same wallet on the web and on mobile.

How we’d start

Start small, then build out

01

Discovery

We look at the assets you want to offer, how transactions get approved today and where the platform has to run, and agree what the first release covers.

02

First release

A working wallet and engine for a first set of assets and transaction types, deployed into your environment and tested with your team.

03

Build out

More assets, transaction types and workflows, added release by release as your customers and your rules need them.

Quick check

Sound like your business?

Tick what sounds familiar.

Customers are asking to buy or hold crypto through you.
You rely on a partner’s exchange or app and can’t see your customers’ full balances yourself.
Someone reconciles deposits, trades and withdrawals by hand.
Approvals for large or unusual transactions happen in email.
The platform has to run in your own cloud and meet your own security rules.
of 5 ticked

A wallet can probably wait

You probably don’t need a wallet of your own yet. If digital assets are on your roadmap, a short call will tell you what it would take.

You’re paying for not owning it

Every hand check and email approval is a cost of running crypto on someone else’s platform. It’s worth mapping which parts you’d bring in-house first.

This is what we built

Let’s talk through your assets, your approvals and where it needs to run.

Talk it through with us
Let's talk

Want to offer crypto on a platform you control?

Tell us which assets you’d support and how your transactions get approved today, and we’ll show you how we’d build it.

Let's Connect

Interested in building a smarter, more connected operation? Contact us to discuss how AI can support your business goals.