05 · Edge cases · Reconstructed wireframe board

Where the design earns trust.

Happy paths prove competence. Edge cases prove judgment. Five real-world constraints visible in the shipped product — each showing a specific design decision made under pressure.

Row 1 — transaction constraints

ec-1 · insufficient balance

0:41▌▌▌ LTE

← Send To Other Accounts

First Bank of Nigeria

0•••••••••• · ADA NWOSU

₦ 1,500

≈ 1.10 USD

!Not enough Bonus for transaction + fees.
Current Bonus: 0.20 USDNew rate in 0:19
Continue

EC-1 — Insufficient balance

Fails fast at amount entry, not at confirmation. The error names both the transaction amount AND fees as the constraint — not just "insufficient funds."

Fail early, name precisely

ec-2 · rate expired

0:41▌▌▌ LTE

← Send To Other Accounts

First Bank of Nigeria

0•••••••••• · ADA NWOSU

₦ 55,000

≈ 40.21 USD

Conversion Fee: 0.40 USDT ⓘ

Rate: 1 USDT = ₦1,368↺ Refresh Rate
Continue

EC-2 — Rate expired

When the 30-second window expires, "Refresh Rate" replaces the countdown. Continue stays disabled. The user must consciously confirm the new rate — silent updates do not happen.

User confirms every rate

ec-3 · wrong network risk

0:41▌▌▌ LTE

Receive USDT

Network

BEP20

Scan QR Code

Wallet address QR code

Wallet Address: 0×6B675...a487 ⎘

Send only USDT on the selected network to this wallet to prevent loss of funds.

EC-3 — Wrong network risk

Wrong network = irreversible fund loss. The warning is a permanent state element, not a one-time modal that gets dismissed. Always visible on the highest-stakes screen.

Passive warning, not dismissible

Row 2 — system states

ec-4 · bank delay state

0:41▌▌▌ LTE

← Transaction Details

⏳ Processing

₦55,000.00

Wednesday, June 03

12:53 PM

You initiated your transfer

12:53 PM

Transaction taken from USDT Wallet

12:53 PM

Converted to NGN

In progress

Sent to bank — processing

EC-4 — Bank delay

The product doesn't go silent when banks are slow. The state machine surfaces exactly where money is in the pipeline. "Sent to bank — processing" is a named state, not a void.

Delays are named, not hidden

ec-5 · display edge case

0:41▌▌▌ LTE

Wallets

USDT

₦1,368.00 -0.59%

0.40 USDT

BTC

$60,500 -1.53%

0.00 BTC

ETH

$1,550 -100.00%

0.00 ETH

⚠ Zero balance with no price change base triggers arithmetic anomaly. Should show "—" not -100.00%.

EC-5 — Data display anomaly

ETH showing -100.00% when balance is zero is mathematically correct (dividing by zero base) but reads as catastrophic. A zero-balance wallet should suppress the percentage change entirely.

What I'd fix: show "—" not -100%

"The best crypto UX makes the crypto invisible. Mular's job is done when the user thinks they sent money — not when they think they used crypto."

Edge cases are where this principle is most tested. Each state above shows the product holding that promise under constraint.