GOLD. COCOA. CASHEW.
IN YOUR POCKET.
Buy fractional positions in real commodities, trade them instantly, and watch every transaction lock into a hash-chained ledger you can verify yourself — on data, off data, or over a USSD dial pad.
How a trade actually settles.
No step here runs in your browser. The app only ever asks a Postgres function to do it, inside a single atomic transaction, so a buy either completes in full or not at all.
Validate
Confirm the signed-in wallet exists, belongs to you, and is ACTIVE — before anything else is even read.
Price
Pull the most recently recorded rate for the asset from an append-only price history — never a cached or client-supplied number.
Calculate
Convert your cash into fractional units server-side, in fixed-point decimal — never floating point, never in the browser.
Settle
Debit the cash balance and credit the asset balance together, inside one database transaction. Either both happen, or neither does.
Chain
Write a ledger entry containing SHA-256(previous_hash + payload) — tamper with one entry and every hash after it breaks.
Receipt
Hand back a signed record with a reference you can trace end to end, from the app, the ledger tab, or a raw table query.
Three commodities, one wallet.
Each token is a digital, fractional claim tracked against a demonstration reserve — not a certificate for physical delivery.
Gold
Priced per gram. Held the way traders have always held gold — as a hedge against everything else moving.
Cocoa
Priced per kilogram. Ghana's signature export, now small enough to hold a fraction of from a phone.
Cashew
Priced per kilogram. The newest addition to the reserve, and the fastest-growing export by volume.
Built to be checked, not just trusted.
Every rule below lives at the database layer — enforced whether the request comes from the app, a script, or someone poking at the API directly.
Row-level security, everywhere
Every user-owned table checks auth.uid() before returning a single row — not just the UI hiding what it doesn't show.
One atomic transaction per trade
Balance debit, credit, transaction record and ledger entry all commit together inside a single Postgres function — or all roll back together.
Retry-safe by design
Every write carries an idempotency key. Replay it after a dropped connection and you get the original receipt back — never a second charge.
A ledger you can re-check
The verify endpoint recomputes the whole hash chain server-side. Break one link and it tells you exactly where.
Admin is a data grant, not a hidden page
Cross-user visibility is a role on your row, enforced by the same RLS policy engine — not a URL nobody's supposed to guess.
The service key never reaches a browser
Balance-changing logic runs inside Edge Functions with the privileged key. The client only ever holds the public, RLS-scoped one.
Works with whatever you're carrying.
Four modules, each shipped as its own Edge Function — not features bolted onto one monolith.
Installs like an app, works without signal
Recent prices, your balance and pending trades are cached to the device. Go offline mid-session and queued actions sync the moment you're back, each tagged with the idempotency key that keeps a retry from becoming a duplicate.
Real Mobile Money, via Hubtel
Deposit through Hubtel's Mobile Money checkout — the wallet is credited only once Hubtel's own webhook confirms the payment, verified server-side so a retried callback can never double-credit.
A dial pad for feature phones
Not everyone in the market is holding a smartphone. The same buy, sell and deposit flows are reachable through a USSD-style menu session — built to sit behind a real short-code later without a rewrite.
An explanation, not a recommendation
Portfolio and market insights are generated from your actual holdings and public price history — never your name, phone number or email — and always labeled as educational, not financial advice.