Blog/AGENTS / NATIVE BTC

Why Your Agent Can't Hold Bitcoin

Your agent can already sign on EVM and Solana. Ask it to hold real Bitcoin and most stacks have nothing, because the gap is in the wallet, not the agent.

Quick answer

Your agent is not the problem. Its wallet is. Almost every agent wallet is built for account-based signing: one key, one signature, one balance. That fits EVM chains and Solana. Bitcoin is a UTXO ledger, where you spend specific coins by building a transaction (or a PSBT) around them, and most agent tooling never learned that step.

Two wallet models, one gap

Account-based (EVM, Solana)UTXO (Bitcoin)
What you spendA balance at an addressSpecific unspent outputs (UTXOs)
Sending a paymentSign one transactionPick UTXOs, build the transaction, set fee and change, then sign
What agent SDKs shipSign and send, built inRarely built in. Coin selection and PSBTs are usually missing
What your agent getsWorks out of the boxA quote and a deposit address, then no way to spend

Neither model is wrong. Both own a key and authorize a spend. The gap only shows when a stack built for one meets an asset that speaks the other.

Where it breaks

Your agent asks for a quote. The route lands on native BTC and comes back as a DEPOSIT: send this much BTC to this address. That part works. Actually sending it means:

  • Finding which UTXOs the sending address controls
  • Picking enough of them to cover the amount and the fee
  • Building the transaction (or a PSBT) with the right inputs, outputs and change
  • Signing with a key that speaks Bitcoin, not just EVM

None of this is exotic. It is standard Bitcoin work. Most agent wallets just never needed it, because nearly all agent activity so far has been on EVM and Solana. So the agent gets one step from real Bitcoin and stops.

How RAVN closes it

Our MCP server has a tool for exactly this step: ravn_btc_prepare_send. Give it the deposit address and amount from a DEPOSIT result, and it hands back an unsigned PSBT (Partially Signed Bitcoin Transaction, BIP-174). That is the standard way to pass around a transaction that is built but not signed. The UTXO lookup runs on mempool.space's public API, not on RAVN. We never see or hold a key. The tool stops where signing starts, and you decide once how your agent signs:

  • Local keySign right inside the agent's own environment.
  • Human reviewSend the PSBT to a person or wallet app to check and sign first.
  • Custody / TEEPass it to a service that signs without showing the key to the agent.

Any way you pick, your agent holds real Bitcoin on the Bitcoin network, not a wrapped copy. Here is why skipping the wrapper matters for swaps too.

Works on every access path

The free MCP server, pay-per-call x402 and the plain REST API all run the same quote and execute logic. So ravn_btc_prepare_send fits whichever one your agent uses. See how the three compare in AI agents on RAVN.

Give your agent a Bitcoin wallet, not just a Bitcoin quote

Point an MCP client at the server and try ravn_quote and ravn_btc_prepare_send end to end.

The honest tradeoffs

  • You still own signing. We build the transaction. We never sign one. How you manage keys is your call.
  • Bitcoin sets the pace. A fast quote does not make blocks come faster.
  • Five venues, not all of them. Native BTC races Relay, NEAR Intents, THORChain, Chainflip and Rift when they support the pair. The one that pays you the most wins.

FAQ

Why can't AI agents hold real Bitcoin?

Most agent wallets are built for EVM and Solana, where one key signs against a balance. Bitcoin makes you pick unspent outputs and build a transaction or PSBT, and most agent tooling never learned that.

What is a PSBT?

A Partially Signed Bitcoin Transaction (BIP-174). It is the standard format for a Bitcoin transaction that is built but not yet signed. ravn_btc_prepare_send builds one from a deposit address and amount.

Does RAVN custody or sign the agent's Bitcoin?

No. The PSBT is built from mempool.space's public API. We never hold a key and never sign for your agent.

How does an agent receive native BTC through RAVN?

Pass a DEPOSIT result to ravn_btc_prepare_send and you get back an unsigned PSBT, ready to sign. That step needs no call to RAVN's servers.

Which venues does RAVN race for native BTC?

Relay, NEAR Intents, THORChain, Chainflip and Rift, when they support the pair. The one that pays you the most wins.

Continue reading