> ## Documentation Index
> Fetch the complete documentation index at: https://www.bitnob.dev/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Bitnob API requests authenticate with an `X-Auth-Client` API key header against https://api.bitnob.com.
> Always use the sandbox environment for testing. Never put live API keys in sample code.
> Money amounts are integers in the smallest unit of the currency (satoshis for BTC, cents for fiat). Never use floats.
> Every state-changing request takes a client-supplied `reference` and must be treated as idempotent on retry.
> Quotes expire. Re-quote rather than reusing a stale quote id.

# On designing the trading experience

> An essay on designing conversion as a moment of commitment rather than a form submission.

When you design for trading, the conversion of one asset into another, you are not designing an interaction. You are designing a moment of commitment. A decision. A declaration of trust.

This is not merely about interface. It is about what that interface represents. It must be clear. It must be honest. And above all, it must never distract from the seriousness of what the user is doing.

## Presenting the quote

A quote is not a price. It is a promise. It is time-sensitive, auditable, and finite. Your design must reflect that.

Present it with precision:

* Show the exact input and output
* State the rate, not as a flourish, but as a fact
* Indicate when this promise expires, with a countdown, not a guess

Do not round. Do not simplify. This is not decoration. It is financial reality. Treat it with discipline.

## The expiration of a promise

When a quote expires, it should not be possible to proceed. This is non-negotiable.

The interface must:

* Prevent the user from acting on outdated information
* Invite them to fetch a new quote, deliberately
* Make the boundary between valid and invalid unmistakable

A faded CTA. A sharp timestamp. A refreshing action, not a surprise, but an intentional reset.

## Confirming the trade

The moment of confirmation is not a tap. It is a contract.

Reflect the progression honestly:

* “Validating quote…”
* “Verifying wallet balance…”
* “Executing trade…”
* “Crediting wallet…”

Design this not for speed, but for assurance. Give the user confidence that their action is being taken seriously.

Let the completion be silent, but sure.

## About inputs

Precision is not optional. You are not working with ideas. You are working with money.

Never allow a user to enter:

* A floating-point guess
* A poorly formatted currency
* A broken assumption about units

Always:

* Show BTC in sats
* Show stablecoins in cents or dollars
* Show NGN in whole naira
* Normalize, correct, confirm, before submission

Never make the user think harder than they need to. But always ensure they understand exactly what is about to happen.

## Communicating success

A successful trade should not feel casual. Do not say “done.” Do not flash green and disappear.

Say what happened. Show what changed.

“You converted \$100.00 into 225,000 sats.” “The funds have been credited to your Bitcoin wallet.” “This rate was locked at 2,250 sats per \$1.” “Reference ID: trade\_8493A”

This is not for drama. It is for integrity. Because when a user commits money, we owe them clarity.

## On failure

When something goes wrong, the design must never panic.

A quote expires? Say so plainly. Balance is insufficient? State it exactly. Execution fails? Assure the user. No funds were lost. No action was taken.

Avoid vagueness. Avoid euphemism. Avoid cleverness. This is not the place for it.

## Trade UX must be transparent

Design should not obscure revenue. If there are fees, say so. If there’s a markup, you must choose. Disclose or hide with precision. But never contradict the rate shown and the result delivered.

Trust is easy to lose, and impossible to retrofit. Build it into the design.

## In closing

Trading is not a feature. It is a relationship between a person and their money. Between certainty and decision. Between now and later.

Design must honor that.

With precision. With restraint. With respect.

That is your responsibility. And your opportunity.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.