AIW BLOG

From Strike to Monero in One Sentence

A US fintech that only speaks Bitcoin. A privacy coin it will never support. One chat message bridged them, across two apps and two chains.

Jefrie Polanco โ— May 31, 2026 โ— 8 min read

Here's a problem most people in crypto just live with. I had a balance sitting in Strike, the Bitcoin fintech app, the clean one, the one your normie friends actually use. About $191 of it. And I wanted that money in Monero. Not Bitcoin. Monero. The private one.

Strike does not do Monero. It will never do Monero. Strike speaks Bitcoin and US dollars, full stop. So the "normal" path looks like this: withdraw the BTC out of Strike to a wallet, open a non-custodial exchange, paste a deposit address, send the BTC, wait, swap to XMR, paste another address, wait again. Two apps, two chains, four addresses, and about six ways to send a few hundred dollars into the void with one fat-fingered character.

Instead, I opened AIW, found the White Rabbit chat, and typed one sentence:

Please sweep my Strike to my self-funding-project address

That "self-funding-project address" is just a saved contact, a Monero subaddress I keep for exactly this. I didn't paste it. I didn't look up a rate. I didn't pick an exchange. I typed that, hit send, and watched.

The White Rabbit chat showing the staged confirmation card and the live step tracker
ONE MESSAGE IN. THE RABBIT MAPS THE WHOLE ROUTE, AND SHOWS EXACTLY WHAT WILL EXECUTE BEFORE ANYTHING MOVES.

The Rabbit came back with a plan, fully itemized, and a single button. Not a wall of questions. A plan.

What the Rabbit Did

Behind that one sentence, the White Rabbit ran the entire bridge on its own:

  1. Recognized "self-funding-project" as a saved Monero address and validated it on-chain
  2. Read my live Strike balance (the real spendable number, not the headline one)
  3. Shopped the rate across exchanges and picked the best one (SimpleSwap), with automatic failover ready if it timed out
  4. Created the BTC โ†’ XMR order and pulled back the deposit address
  5. Sized a Strike on-chain send that actually fits the balance once the network fee is taken out
  6. Showed me a confirmation card: amount, fee, deposit address, what I'd receive, and the destination, all in full
  7. Waited for my Strike PIN
  8. Sent it, and tracked it to completion

Eight steps. One message. And exactly one thing was mine to do: enter my Strike PIN on the confirmation. Because Rule #0 is Rule #0: the AI prepares, the human approves, always. A prompt-injected agent cannot move a satoshi on its own; the only money-moving step is gated behind a PIN the model never sees.

The step tracker showing all eight steps complete
8 / 8. EVERY STEP CHECKED OFF, LIVE. TAP ANY ONE TO SEE EXACTLY WHAT IT DID.

About twenty minutes later, most of it just Bitcoin and Monero confirmations doing their thing, and the wallet pinged.

Landed in my Monero wallet
0.521 XMR
~$191 OF STRIKE BTC ยท BALANCE 0.765 โ†’ 1.286 XMR ยท ONE CONFIRMATION, BLOCK 3,686,229
The Mad Hatter's Ledger showing the received 0.521 XMR with block height and confirmations
PROOF AT THE TEA PARTY. THE MAD HATTER'S LEDGER: +0.521 XMR, BLOCK 3,686,229, RECEIPT AND PROOF IN HAND.

Strike money. Now Monero. No browser, no exchange website, no copy-pasting addresses between apps. One sentence and one PIN.

Now Tell Me That's Easy By Hand

People underestimate this bridge because each piece sounds simple. It isn't, and the failure modes are expensive.

You'd need to know which non-custodial exchanges still support XMR and aren't down right now. You'd need to know that Strike adds a Bitcoin network fee on top of your send, so "send my whole balance" is a trap. You'd need to size the send so the amount plus the miner fee fits. Get it wrong by a few hundred satoshis and the whole thing bounces. You'd paste a BTC deposit address from the exchange, then an XMR receive address into the exchange, and if either one is off by a character, the money is simply gone. Not refundable. Gone.

And if your exchange is having a bad day? You start over somewhere else. Nobody tells you it's down until you've already wasted ten minutes.

2 apps ยท 2 chains
By hand ยท 4 addresses, fee math, manual failover, ~45 min of active work
1 message
White Rabbit ยท one PIN ยท ~20 min, almost all of it just waiting on confirmations

It Didn't Work the First Time. Here's the Honest Part.

This blog is field notes, not a sales reel, so let me tell you what actually happened the first three times I tried this, because it's the most interesting part.

It kept failing. Same wall, every time:

Strike BALANCE_TOO_LOW: Insufficient funds

Which is maddening, because I was sweeping my own balance. I asked for everything I had. How is "everything" too much?

The first culprit was sneaky: the Rabbit was reading the balance, then sending that exact number a moment later, but the spendable balance drifts by a few satoshis between reads. Asking for 0.00272131 when 0.00272112 is available is a dead-end. The fix: treat "sweep" as sweep. Never carry a hand-read number; let the server size the exact amount at send time.

The second culprit was the real lesson, and I only found it by staring at the step tracker, which is exactly why I built the tracker. Strike's on-chain fee is charged on top of the amount you send. Even when you tell its API "make the fee inclusive," that only covers Strike's own cut, not the Bitcoin miner fee. So a quote for your full balance always overdraws by the network fee. BALANCE_TOO_LOW, every time, and the raw error tells you nothing.

The fix that finally worked: size the send to balance minus fee, and if Strike still says no, step the amount down a little and try again, until it takes. The Rabbit now does that automatically, in code, every time. The screenshot up top, the one where it just works, is the version that landed after I taught it that lesson.

That's the difference between a demo and a tool. A demo works once on a good day. A tool knows about the miner fee.

The AIW dashboard after the swap, balance increased to 1.286 XMR
THE FUNDED WALLET: 0.765 โ†’ 1.286 XMR ONCE IT SETTLED.

Why This One Matters More Than the Last One

A while back I wrote about going the other way: Monero out to Cash App in one sentence. Cashing out. This is the harder direction, and the more meaningful one.

This is value moving from the surveilled world into the private one. From a KYC fintech that knows your name, your face, and every transaction, into Monero, where the next hop is yours alone. Normally that crossing is a gauntlet of addresses and exchanges and fee math, which is precisely why most people never make it. They keep their money where it's easy to watch.

The White Rabbit collapses that gauntlet into a sentence. It doesn't decide anything for me. It doesn't pick when, or how much, or whether. It does the mechanical crossing: the rate-shopping, the address handling, the fee arithmetic, the failover, the retries. I answer the only question that was ever mine to answer: yes, send it.

What's Under the Hood Now

The reason it's reliable now and wasn't before isn't a smarter prompt. It's that the whole bridge stopped being the AI's job to remember step-by-step, and became a deterministic pipeline the server runs the same way every time. The model's entire role shrank to one thing: understand "sweep my Strike to my project address" and fire a single action. The server does validate โ†’ balance โ†’ rate-shop โ†’ order โ†’ fee-correct send โ†’ one gated confirmation. If an exchange times out, the server fails over. If the fee math is tight, the server retries smaller. None of that depends on the model holding nine things in its head across a conversation, which is exactly where it used to drop the thread.

And every step is right there in the tracker, tappable, showing the real deposit address and the real numbers. When something breaks, you can see where. That's how I found the miner-fee bug in the first place.

Rule #0: Never Trust AI. The rabbit assists. It does not decide. You hold the keys.
๐ŸŽฉ
Jefrie Polanco (PokiDaddy)
Quality Engineer who builds software by orchestrating AI agents. Dad, nerd (but not in the technical way), and builder of a wallet that turns "move my money" into a sentence.
๐Ÿ‡
Follow the rabbit
Self-sovereign multi-chain crypto wallet with AI. Open source. No KYC. Your keys, your coins, your rules.
Enter Wonderland