Buying an AI API with Monero

2026-06-17 · ~1500 words

A five-minute walkthrough of buying an OpenAI-compatible API key with XMR. Where Monero's chain privacy actually helps, where it doesn't, and what changes if you pay in BTC or USDT instead.

▸ Why XMR specifically

Monero is the practical default for anonymous payments online for a single reason: the chain itself is opaque. Ring signatures hide which UTXO was spent. Stealth addresses make the destination unlinkable. RingCT hides the amount. Even with full chain access and infinite compute, a third party cannot trivially trace a transaction back to a sender or forward to a recipient.

Every other major coin (BTC, ETH, USDT, USDC, LTC, SOL, DOGE) sits on a transparent ledger. The transaction is visible. The amount is visible. The sender and receiver addresses are visible. Chain analytics firms (Chainalysis, Elliptic, TRM Labs) cluster addresses into wallets and wallets into identities. They sell that data to law enforcement, exchanges, and any compliance customer willing to pay.

If you pay Phantom in BTC, your transaction is forever visible on the Bitcoin blockchain. Phantom holds no return address, but the chain itself records the link from your source address to the payment processor's deposit address. If your BTC came from a KYC exchange, your identity is one chain-analytics query away from that transaction.

XMR closes that gap.

▸ The five-minute path

Assuming you already have a Monero wallet with XMR in it: pick a bundle, click pay, copy the address Phantom shows you, send, wait. Done in three minutes.

Assuming you have nothing: the path is wallet, acquire XMR, fund Phantom, receive key. Total time around 10 to 30 minutes depending on exchange + confirmation speed.

▸ Step 1: wallet

You need a Monero wallet. Three reasonable defaults:

  • Monero GUI / CLI (getmonero.org): official, runs a full node by default. Slowest sync but the most private. Recommended for any meaningful amount of XMR.
  • Cake Wallet (mobile, desktop): light client, syncs against a remote node. Faster to set up. Good for tx in the dozens-of-dollars range.
  • Feather Wallet (desktop): light client with Tor by default. Good middle ground.

Generate a new wallet. Write down the 25-word seed phrase. Store it where you store seed phrases (paper in a drawer, steel plate, encrypted password manager). Do not screenshot it. Do not paste it into a chat. The seed is the wallet.

▸ Step 2: acquire XMR

Three paths to get XMR into the wallet:

  • Centralized exchange. Kraken delists XMR for many regions but supports it elsewhere. TradeOgre is a non-KYC option. Trocador.app aggregates non-KYC swaps. Identity exposure depends on the exchange.
  • Atomic swap from BTC. Exchanges like SimpleSwap, FixedFloat, ChangeNow accept BTC and pay XMR to your wallet. The trade itself is non-KYC for under-threshold amounts. Your BTC source still ties back to wherever you got the BTC.
  • Peer-to-peer. LocalMonero (until 2024 closure), Bisq, Robosats, AgoraDesk, RetoSwap. Cash-by-mail, gift cards, or bank transfer to another individual. Slowest, most private. KYC depends on counterparty.

For a $10 starter bundle, you need about $11 of XMR (small slippage on the swap). For a $50 bundle, $52-ish. The cheapest practical option for a one-time purchase is a centralized non-KYC swap from a small amount of BTC or USDT you already hold.

▸ Step 3: buy the bundle on Phantom

Open https://phantom.codes/#pricing. Pick a bundle: $10 starter, $50 standard, $200 pro, $500 enterprise. Click. The form returns a payment ID and a hosted-checkout URL.

On the hosted checkout page, pick Monero. The page mints a fresh deposit address per order and shows a QR. Copy the address or scan the QR with your wallet.

Send the exact amount shown. Hosted checkout typically gives a fixed quote good for a 15-30 minute window. Pay within that window. Underpayment will mark the order partial and expired (terminal: it cannot be rescued by a later top-up). Overpayment is converted at the spot rate.

▸ Step 4: wait for the key

XMR settles after roughly 10 block confirmations, which is about 20 minutes at default block time. The hosted checkout polls the chain and notifies Phantom when funds clear. Phantom issues a key and returns it on the next /v1/purchase/{id}/status poll.

If you kept the Phantom tab open, the key drops automatically in the UI. If you closed it, visit /recover.html, paste your payment ID, and the key returns. Phantom holds the AES-256-GCM ciphertext of the key encrypted under HKDF-SHA256(payment_id). Holding the payment ID is sufficient to re-derive the key forever.

The key looks like sk-A1xZ9k7eF.... Use it as the OpenAI api_key with base_url=https://phantom.codes/v1. See the client configurations post for every common tool.

▸ What if I don't have XMR?

The hosted checkout also accepts BTC, ETH, USDT, USDC, LTC, SOL, DOGE. The mechanic is identical: pick a coin, send to the per-order address, wait for confirmations.

Trade-off: those chains are transparent. Phantom still has no idea who you are, but the source of funds is on a public ledger. If you got the BTC from a KYC exchange, the chain itself records the link from that exchange's withdrawal address to Phantom's deposit address. Anyone running chain analytics on your withdrawal can see where you spent it.

This matters more or less depending on the threat model. For most buyers, "the vendor doesn't know I exist" is enough, and any major crypto suffices. For buyers whose threat model includes on-chain surveillance (security researchers, journalists, anyone in a jurisdiction with active crypto-tax enforcement), XMR is the only acceptable option.

▸ Confirmation speed by coin

  • USDT/USDC on TRC-20: ~1 minute. Fastest. Cheap fees. Transparent chain.
  • USDT/USDC on ERC-20: ~7 minutes (30 ETH confirms). Higher gas. Transparent chain.
  • SOL: ~1 minute. Cheap fees. Transparent chain.
  • DOGE / LTC: ~10-20 minutes. Cheap fees. Transparent chain.
  • XMR: ~20 minutes (10 confirms). Default fees. Opaque chain.
  • ETH: ~7 minutes (30 confirms). Higher fees. Transparent chain.
  • BTC: ~30 minutes (3 confirms). Highest fees. Transparent chain.

For first-time anonymous AI buyers without XMR, USDT on TRC-20 is the practical speed-leader. For privacy-first buyers, XMR is the answer regardless of the 20-minute wait.

▸ What Phantom does and doesn't see

Phantom sees: the payment processor's IPN webhook (signed HMAC-SHA512) saying "order X paid". The deposit address. The amount. That's all.

Phantom does NOT see: your return address, your wallet, your IP, your email, your name, your country. There is no field for any of those. The DB schema has no columns for them. Subpoenable data: hashed key ID, token counts, payment-to-key linkage via the AES-encrypted ciphertext (decryptable only with the payment ID you hold).

The exchange or wallet you used to fund the purchase may see things. Pick wisely.

▸ Common failures

  • Underpayment by gas/fee. Sending exactly $10 worth often arrives as $9.97 after network fees. The hosted checkout has a small tolerance but may mark the order partial. Send $10.50 instead.
  • Wrong chain. USDT exists on Ethereum, Tron, Solana, and others. The deposit address belongs to one chain. Sending USDT-ERC20 to a USDT-TRC20 address is recoverable only with chain-bridge engineering. Pick the chain the checkout specifies.
  • XMR sync lag. A fresh Monero GUI sync can take hours on a slow connection. Either run a remote node from your wallet settings or use a light client (Cake, Feather) for the actual payment.
  • Lost payment ID. The payment ID is bearer-equivalent to the key. Lose both and the purchase is unclaimable. Phantom holds no fallback identifier. Save the payment ID immediately.

▸ Where to go next