To settle trades without revealing counterparties and size on-chain, OTC desks move the settlement leg into Hinkal, a smart contract on the public chains they already use that keeps the sender, recipient and amount of a private transfer off the public ledger. Settlement still finalizes on-chain, every deposit is screened against Chainalysis, and viewing keys let the desk show its records to an auditor or regulator.
An OTC trade is negotiated privately. Its settlement is public. Each leg that lands on a public chain is a transfer with a sender, a recipient, an amount and a timestamp, and the first party to read it is the counterparty on the other side.
A client settlement exposes the desk's wallet, and through it the desk's balance and its other clients.
A hedge with a liquidity provider exposes the desk's inventory and which way it leans.
A treasury move between desk wallets exposes how much capital the desk holds and where it sits.
A block settlement exposes the client's size and wallet to every counterparty the desk deals with next.
A counterparty who can read the desk's inventory and client list prices against it in the next negotiation. And more OTC flow settles in stablecoins every year.
Sources: Finery Markets, Crypto OTC Trading Report 2026 and Stablecoins 2035. In the same H1 2026 data, centralized exchange volume fell 38%. Finery Markets also reports that 75% of liquidity providers saw spread capture decline in 2025 versus 2024, so a desk has little margin to hand to a counterparty through its settlement data.
How a counterparty rebuilds a desk's book from settlement data, step by step: Reading the Tape. More figures on B2B and OTC flows are in our stablecoin settlement statistics.
Desks already work around public settlement. Four methods are common. Each one hides part of the picture and adds cost somewhere else.
A fresh address for each settlement. Every new address has to be funded, and the funding transfer points back to the desk's treasury. Each one also has to be shared with the counterparty and checked before it can receive. The amount and timing stay public.
One block becomes several smaller transfers. Each tranche pays its own network fee and adds time to settlement. The counterparty still receives the full size, and transfers of similar size from related addresses are easy to add back together.
Offsetting client flows on the desk's own books, so only the net amount moves on-chain. It works only when opposing flows exist at the same time, it adds reconciliation and credit exposure between the parties, and the net amount still settles in public.
Both sides hold funds at the same exchange or custodian and settle by book entry. The trade leaves no on-chain transfer, and the venue sees all of it. Capital sits pre-funded at the venue, both sides carry the venue's custody risk, and every deposit to and withdrawal from the venue is a public transfer.
None of the four keeps the sender, the recipient and the amount private on the same settlement while the desk keeps its own wallets and custody. That is what Hinkal is built for.
Each approach against the three questions a desk gets asked: what the other side sees, what the auditor sees, and what it costs to run.
For a wider look at the tools desks evaluate, see our comparison of confidential OTC settlement tools with audit trails.
Hinkal is a smart contract on the public chains a desk already uses. It gives the desk's existing wallet a private balance inside the contract. The wallet stays the key: it signs every move, and Hinkal never holds its keys.
Funds enter the private balance through a deposit, screened at entry. Inside, a private transfer is recorded on-chain as old commitments spent and new ones created, without the new owner or the amount. Funds leave as a standard transfer from the Hinkal contract to any public address.
Desks use it three ways: Hinkal Pay for desk-to-client settlement, Hinkal Prime for treasury and batch flows, and the Hinkal API and SDK inside the desk's own platform. The wallets, chains, stablecoins and custody stay the same.
For desks that want to settle from a ready app at pay.hinkal.io, with no integration work.
The client opens Receive in Hinkal Pay and copies its Hinkal Deposit Address. It works like a regular wallet address and is linked to the client's private balance.
The desk connects its existing wallet, chooses Send privately, pastes the address and sends from its wallet balance or its private balance. The send goes through the Hinkal smart contract. From the private balance, no public wallet address links desk and client.
The deposit is screened and moves into the client's private balance automatically. The client connects its own wallet in Hinkal Pay to hold, send or withdraw it, with no new wallet, seed phrase or custodian.
The other leg works the same way. When the client pays the desk, the desk shares its own deposit address, and the client sends from any wallet, exchange or payment provider as a normal transfer, with no Hinkal account.
The summary shows the network fee and the Hinkal fee before the desk confirms. For larger tickets, Randomize timing executes a same-chain, same-token send from the wallet balance at a random moment within 15 minutes to 24 hours, so the moment the desk pressed Send can't be matched to the moment funds land. Recipients paid at a deposit address get their funds right away. One send can pay several recipients, and Bridge & Send delivers a different token or network in one step. More on Hinkal Pay
For desks that run settlement as a team, with a split between who prepares a payment and who signs it.
The team signs in at prime.hinkal.io with Google. The Owner connects the organization wallet, which holds the public balance, controls the private balance and signs every payout. Members work without a wallet.
The Owner shields funds from the organization wallet into the private balance, so the payouts originate privately.
A Member enters a single payout, or uploads a CSV with recipient, amount, token and delivery method, up to 500 rows. Every row is validated before anything is signed.
The payout waits in Pending Payouts. An Owner reviews every row, approves, and signs once for the whole batch, which settles as one authorized run.
With Confidential Settlement, funds are deposited into the Hinkal contract and associated with the recipient's public address, so no transfer arrives at that address on-chain. Direct delivery is a standard transfer. The method is chosen per row.
Transaction History records each batch per recipient, with amount, token, network, source and delivery method, so reconciliation works row by row.
A recipient paid by Confidential Settlement connects that same wallet in Hinkal Pay to see the balance. Incoming legs use Receive: a request link set against the private balance, which the client pays from Hinkal Pay. Nothing arrives at the organization's public address, so incoming settlement volume is not visible on-chain. More on Hinkal Prime
For desks that want private settlement as an option inside their own product, so clients settle privately without leaving the desk's interface.
The desk signs a session request with its existing EVM, Solana or TRON wallet. No API key is needed to authenticate. Any wallet that produces a standard signer works, including Turnkey, DFNS, Privy, Dynamic and Openfort. The API server runs inside a secure enclave, and the desk keeps its own wallet.
POST /private-send pays one or more recipients in a single order. The desk deposits public tokens, and the enclave detects the deposit and schedules a private withdrawal to each recipient, so the on-chain link between sender and recipients is never visible. POST /deposit-for-other deposits straight into a client's private balance instead.
The SDK puts private balances and private sends inside the desk's own app. With a Hinkal Partner key, the desk adds its own fee of 0 to 100 bps on top of Hinkal's 10 bps and tracks volume and commission at partner.hinkal.io.
Private Send Bridge pays recipients in another token or on another chain. The SDK covers TypeScript, React Native, Go, iOS and Android, with no changes to custody, compliance processes or routing logic. More on the Hinkal API and SDK
Book a demoA desk's settlement stays confidential to counterparties and the market, and stays open to the desk's compliance team, auditors and regulators.
Every deposit is screened against Chainalysis before it enters a private balance. Each deposit gets a depositId, permanently linked to the wallet that made it.
To deposit, transfer privately or withdraw, the user proves in zero knowledge that the funds are not tied to a sanctioned or high-risk depositId. The proof is checked against the current Chainalysis state.
Depositor addresses are re-screened as new risk signals emerge. If an address is flagged after deposit, its funds lose access to private transfers and can only be withdrawn publicly, back to the original address.
Share full transaction history, specific transactions or a time range with an auditor, regulator or counterparty.
Export a complete record of the desk's own activity when an audit or review needs it.
For a desk receiving from many clients, the Hinkal Deposit Address adds a buffer. Funds that fail screening stay public at the deposit address, separate from the private balance, so an unsolicited or high-risk transfer cannot enter it.
Hinkal screens wallet addresses, not people. The desk's own client onboarding and compliance processes stay as they are. See how Hinkal compliance works.
They route the settlement leg through Hinkal. The desk sends from a private balance controlled by its existing wallet, the client receives into its own private balance through a Hinkal Deposit Address, and the chain records an interaction with the Hinkal contract without the sender, recipient or amount of the private transfer. Hinkal Pay, Hinkal Prime and the Hinkal API and SDK all run this flow.
No. A client paid at a regular address receives a normal transfer, routed through Hinkal so it is not linked to the desk. A client who wants the funds in a private balance shares a Hinkal Deposit Address and connects its existing wallet in Hinkal Pay to use them.
No. The private balance is controlled by the wallet that connects to it, and Hinkal never holds its keys or moves its funds. Through the API, the desk keeps its own wallet and signs every request.
With viewing keys, which share full history, specific transactions or a time range with an auditor or regulator, and with downloadable transaction history. In Hinkal Prime, Transaction History records each batch per recipient. Every deposit is screened against Chainalysis at entry and re-screened continuously.
In Hinkal Pay, topping up and sending from the wallet to a Hinkal Deposit Address are free, and other sends, swaps and withdrawals are 25 bps. In Hinkal Prime, public to private sends are free and other sends are 25 bps, charged per recipient in a batch. Through the API, Hinkal's fee is 10 bps plus a flat fee for network and relaying costs, and deposits are free. Network gas is separate.
Keep your wallets, chains and custody. Take counterparties, size and inventory off the public record, with screening and viewing keys built in. Move money, not metadata.
Book a demo