Skip to content
Warrantv0.1

Fees

What Warrant charges today: nothing, and the code agrees.

Warrant does not charge a fee. No fee model has been decided, and nothing in the codebase computes, deducts or records one.

$ grep -rniE "\bfees?\b" packages/db/src packages/chain/src apps/api/src
(no matches)

This page describes an absence

Every other page in Concepts documents something that is built. This one documents something that is not. It exists because "what does this cost?" is a question anyone integrating a payments product asks immediately, and an unanswered question is worse than an honest gap.

What the ledger actually does

Money moves between four accounts, and the entries for a settlement net to zero across exactly two of them:

AccountHolds
availableAn organisation's unheld balance.
heldCommitted to open warrants.
payeePaid out.
externalDeposits in, withdrawals out.

Every movement is grouped by a tx_ref, and every tx_ref must net to zero. There is no fee account and no leg that could carry one, so a fee cannot be taken today without a schema change that would be visible in a migration.

You can verify this yourself. Release a warrant for 8400000 in the sandbox and sum the ledger entries: the payee is credited 8400000 and the organisation's held balance falls by 8400000. The figures match exactly, because nothing sits between them.

What a partial release does with the remainder

On a partially_released warrant, the share set by released_bps goes to the payee and the entire remainder returns to the organisation's available balance. It is not retained, and there is nothing for it to be retained by.

amount        "8400000"
released_bps  5000
→ payee       4200000
→ available   4200000

What is not decided

To be explicit about the shape of the gap, none of the following exist as a decision, a number, or a line of code:

  • whether pricing is per warrant, per settled amount, a subscription, or none of those
  • whether a fee would apply to refunds, partial releases, or expiries
  • who bears a network fee once settlement is genuinely onchain
  • any figure, rate, tier or minimum

If you are modelling costs for an integration, model Warrant's own charge as zero and revisit it when this page says something different. Do not infer a rate from anything else in these docs, because there is nothing to infer it from.

Amounts, when there is something to charge

When a fee model does exist, it will follow the same convention as every other amount here: an integer string of the asset's smallest unit, validated against ^[0-9]+$.

"8400000"    8.40 USDC
8400000      rejected — a JSON number
"8.40"       rejected — not the smallest unit

A rate, if there is ever one, will be basis points as an integer — the same form released_bps already uses — for the same reason: a percentage stored as a float is a percentage two systems can disagree about.