Two cost layers, and only one of them is ours
Before you can model what a crypto payment costs, separate the two things people mean by "fee". The first is the network fee — what the blockchain charges to include a transaction. That is gas on Ethereum and the EVM chains, a miner fee on Bitcoin, a small ledger fee on the XRP Ledger, and so on. It is a property of the chain and its demand at that moment, not a halfin rate. A congested hour on Ethereum mainnet costs more than a quiet one; the same transfer on a high-throughput chain like Solana or Tron behaves very differently. halfin does not set this fee and does not take it.
The second layer is halfin's own commercial pricing — what halfin charges to operate the platform for you. That is a real, separate figure, and it is not published here yet. We deliberately do not quote percentages, per-transaction amounts, or a fee schedule on this site, because there is nothing reliable to quote until pricing is finalized. If you see a specific halfin rate somewhere else, treat it as unconfirmed until it appears on an official halfin surface or in your own commercial agreement.
Keeping these apart is not pedantry — it changes the answer. A merchant who folds a chain's gas spike into "halfin is expensive" is mispricing the platform, and a merchant who ignores network fees entirely will be surprised at settlement. Reason about the chain's fee as a qualitative, chain-by-chain characteristic, and treat halfin's commercial terms as the thing you get in writing when you talk to us.
- Network / gas fee — charged by the blockchain, varies by chain and by demand, paid by the sending wallet to the chain, never a halfin rate.
- halfin commercial pricing — what halfin charges to run the platform; not published on this site yet, no figures quoted here.
- Which rails you offer is itself a cost lever — chains differ sharply in network-fee characteristics.
Why there are no numbers on this page yet
Publishing a price you might revise is worse than publishing none. halfin's pricing engine is still being built, and until the commercial model is finalized, any percentage or per-transaction figure here would be a guess dressed up as a commitment. We would rather you plan against the real shape of the cost — the two layers above — than anchor on a number we would have to walk back.
What this means in practice: you can evaluate halfin today on the parts that are fixed and verifiable — the products, the supported chains and assets, the rate-lock behavior, the API and webhook contract — without waiting on a price list. The commercial terms come from a conversation with the team, sized to how you actually transact. When public pricing is ready it will live on an official halfin pricing surface, and your dashboard and signed agreement will always be the authoritative source for the terms that apply to your account.
If you are comparing gateways on headline rates alone, ask each one which layer their number covers and what it excludes. A figure that quietly bundles or omits network fees is not comparable to one that states them separately — and it is the separation, not the digits, that tells you what you will actually pay.
Where the rate lock fits the cost picture
A fiat-anchored invoice fixes the amount in your home currency and locks the conversion rate at the moment the invoice activates. That lock pins the payable token amount the customer is shown, so the figure that reconciles back to your ledger is the fiat figure you billed, not a number that drifted while they were paying. The lock is about exchange-rate certainty, not about fees: it protects the value you book, which is a different question from what the chain charges to move the payment.
What settles to your balance is the on-chain amount that actually arrives and confirms, matched against what the invoice expected. The network fee a customer pays to send the transaction goes from their wallet to the chain — it does not come out of the amount you billed, and halfin does not set or collect it. When a wallet quietly deducts a network fee from the send and the deposit lands short, that is recorded as an underpayment against the invoice rather than silently absorbed, so the gap is visible and yours to act on.
Crediting is reorg-aware and waits for the per-chain confirmation threshold, so "settled" means funds that held on the network. The lock plus settle-on-confirmation together give you two clean numbers at all times: the fiat amount you anchored to, and the asset amount that genuinely arrived — with the chain's own fee living entirely outside that pair, and halfin's commercial terms accounted for separately under your agreement.
The cost levers you actually control
Two of the things that move your total cost are decisions you make, not figures handed to you. The first is which rails you offer. Because a fiat-anchored invoice lets the customer settle in whichever supported asset they hold, giving them a low-network-fee option to pay with is the most direct lever you have. Offering a stablecoin on a high-throughput chain alongside Bitcoin or Ethereum mainnet means a fee-sensitive customer can pick the cheaper rail without you losing the sale — the chain still sets the fee, but you decide which chains are on the table.
The second is how much you convert and rebalance. Balance conversion moves part of your balance from one asset to another at the prevailing rate, automatically as payments land or manually when you choose. Each conversion is rate-driven, and any on-chain step it involves carries that network's fee like any other transaction. A treasury policy that converts deliberately rather than reflexively keeps both the rate exposure and the on-chain activity under your control.
These levers exist regardless of what halfin's commercial pricing turns out to be. They are about the chains and the flow of funds, which you can reason about today.
| Cost layer | Set by | Varies with | Your lever |
|---|---|---|---|
| Network / gas fee (incoming) | The blockchain | Chain and congestion at send time | Which rails you offer the customer |
| Network / gas fee (payout) | The blockchain | Chain and congestion at send time | Which chain you pay out on |
| Conversion / rebalance | Rate + the chain for any on-chain step | Market rate and how often you convert | Your treasury policy (auto vs. manual) |
| halfin commercial pricing | halfin | Your commercial agreement | Talk to the team for a setup sized to your volume |
Getting commercial terms for your business
Because pricing is sized to how you transact, the way to get a concrete number is to talk to the team rather than read it off a list. Useful context to bring: the rough monthly volume you expect, the chains and assets your customers actually use, whether you lean on invoicing, payouts, or both, and any settlement or conversion pattern specific to your treasury. That is enough for a commercial setup that reflects your real flow instead of a generic tier.
You do not need pricing in hand to start building. You can open a sandbox from the dashboard, create fiat-anchored invoices, wire up signed webhooks, and run the full deposit-to-settlement path against the live API and the @halfin/sdk-merchant types — all before any commercial terms are signed. Most teams evaluate the integration first and settle commercials in parallel, so the price conversation happens once you already know halfin fits how you operate.