Teller & Map
Run a human teller counter - buy and sell crypto for cash or bank rails in person - and get listed on the public U.CASH map at map.u.cash.
What a teller is
A teller is a counter terminal for in-person crypto business: a customer walks up with cash (or pays by bank transfer), and your clerk quotes, takes payment, and pays out crypto from your own treasury. The console lives at teller.u.cash; you configure everything from pay.u.cash under Teller in the console.
The counter home is built for speed: buy/sell direction tiles, coin tiles, method chips (cash and your enabled bank rails), a keypad with quick amounts, and a live quote ticket showing the rate and your commission before anyone commits. A queue rail and today's volume sit in the footer.
Every customer gets a second screen: a QR-linked status page and a printable receipt with your header and footer text.
Commission modes
Pick a pricing mode for the counter, globally and per coin (per-coin overrides can inherit or replace the global mode):
| Mode | Behavior |
|---|---|
| Exact market | No commission - trades at the live market rate |
| Spread % | One percentage spread on both directions |
| Flat fee | Fixed fee per trade |
| Spread + fee | Both together |
| Tiered % | Volume brackets, e.g. up to 500 at 5%, up to 2000 at 4%, everything above at 3% |
Tiered rules: 1 to 6 tiers, commission 0-50%, brackets strictly increasing, and only the final tier may be open-ended ("everything above"). The bracket is picked by the market fiat value of the trade, so the commission itself never shifts the bracket. Misconfigured tiers fail loudly at the counter - never a silent fallback rate.
Quotes spell it out: the breakdown reads "commission X% (up to N)" (or "(top tier)") so the customer sees exactly what they pay.
Quick amounts
- Quick cash amounts - keypad buttons for the cash side, in your currency. Up to 8 entries; defaults 20 / 50 / 100 / 500
- Quick crypto amounts - per-coin button sets for the crypto side (e.g. 0.001 / 0.005 / 0.01 BTC). Up to 8 amounts per coin; unset coins simply show no buttons
Address capture
When a customer buys crypto, choose how you take their wallet address:
- Customer phone (default) - they scan the status QR and submit the address themselves
- Counter camera - your clerk scans the customer's wallet QR
- Both - either path works
Directory settings
- Identity level: anonymous, name + email, or U Account sign-in - your compliance ladder
- Limits: min and max per trade, plus a daily volume limit
- Methods: cash plus any of your bank rails
- Online / in person: mark which channels you serve; online tellers appear on the map with an online badge
- Hours, location, and blurb for your map profile; quote expiry and auto-accept for the counter itself
The map
map.u.cash is the public teller directory: a full-screen map with a search overlay (search tellers, cities, or coins), filters for in-person, online, cash, and bank, and per-teller profile pages with location, hours, coins, and live sample rates.
Your profile appears when the teller is both active and public. Going private removes you from the map; your counter keeps working. The pay console shows your map profile, storefront link, and a downloadable QR for your counter.
Every settings save pushes a fresh snapshot to the directory, so hours, coins, and location are never stale on the map.
Non-custodial, still
Customer crypto payouts settle from your own treasury, out of band - the platform records the trade and you mark it complete. There are no platform-signed withdrawals, ever.