Proof
The engine works.
SendMeSol is a work in progress, built in public. Every payment below is a real transaction on Solana devnet, the test network. Open any of them. Texting comes next.
146/146tests passed
8transfers on chain, refund included, 0 failed
~2sfrom PIN to landed
What we tested
Every command, start to finish.
- 59Command readerEvery command, typo, amount format and phone format, and every error
- 55Engine on devnetEvery flow and edge case against the real backend and database
- 4Claim-window refundUnclaimed SOL really comes back, on chain
- 14SecurityPIN and key-page bursts, one-time links, webhook locked to a token
- 8On-chain checkEvery transaction re-read from Solana: finalized, no error
- 6Site demoThe phone on the home page answers like the real thing
- 01A new number gets its own wallet, JOIN sets a PIN✓ Wallet created, test SOL landed
- 02SEND 0.01 SOL to a saved contact, then the PIN✓ Landed; balance down exactly 0.01 SOL + 5,000 lamports7XKo…WNx7 ↗
- 03They reply CLAIM and pick a PIN✓ The SOL is theirs; a second CLAIM finds nothing
- 04REQUEST $0.50, the other side replies PAY✓ Paid, and the requester got told5dJ4…qdhz ↗
- 05Pay someone already on SendMeSol✓ Straight into their wallet, no claim step2Bpn…7rnH ↗
- 06WITHDRAW 0.003 SOL to a Solana address✓ Part of the balance moved out5CrM…ehGe ↗
- 07NEW PIN, then pay with the old PIN✓ Old PIN refused, new PIN works4TqH…7PxF ↗
- 08iMessage mode: pay a new number✓ Nobody texted cold; the sender gets a tap-to-tell link4Gnw…swqh ↗
- 09Send to someone who never claims✓ Sent, then left unclaimedC8sk…yqu1 ↗
- 10After the claim window, the refund✓ The SOL came back on chain; the late CLAIM finds nothing3TTU…rXNg ↗
- 11Under the minimum, over the balance, own number, $200/day✓ All refused with a clear reply
- 123 wrong PINs, then a payment older than 10 minutes✓ Payments locked; the stale payment expired
- 13EXPORT: bad link, wrong PIN, right PIN, reuse, expired✓ Refused, refused, key matches the wallet, dead, dead
Security
Your PIN guards every payment.
3 tries, then a 15-minute lockWe fired 10 wrong PINs at the same instant. Only 3 were checked, the rest were refused, and the payment was cancelled. Same test on the key page: the key was revealed at most once.
Keys encrypted, PINs hashedEvery wallet key is encrypted (AES-GCM). PINs are stored only as salted hashes. The database holds no phone numbers in plain text.
Your key, whenever you want itText EXPORT for a one-time link. It asks your PIN, shows the key once, and dies after 10 minutes.
Limits by text$200 a day by text. Unclaimed SOL comes back to the sender after 48 hours.
How the tests ran
Same engine, test numbers.
The tests texted the engine through the site's test line, from made-up +1 555 numbers, on Solana devnet. It's the same engine the real iMessage number will talk to. The one piece not live yet is the number itself.
What's live, what's next
Built in public, step by step.
- ✓The engineWallet per number, PIN, SEND, CLAIM, REQUEST and PAY, contacts, NEW PIN, WITHDRAW, BALANCE, HISTORY, EXPORT. Running on Solana devnet.Live on devnet
- The iMessage numberThe line costs about $100 a month. It goes live when creator fees cover it.Next
- Mainnet, small caps firstReal SOL, with low limits per number while it grows.Later
- CASHOUT to Cash AppSOL becomes USDC and lands as dollars in your Cash App.Later
- 0.5% of every send buys $SMSHolders send free, with a higher daily limit.Later