---
name: oracle-multichain-convert
description: "Use for Oracle any-asset convert (ChangeNOW/deBridge)."
---

> Oracle native tools: `oracle_cli` (read/prepare), `vault_status`, `signer_status`, `signer_execute` (needs human confirmationNonce), `skill_load`. No generic shell. No fleet SSH.


# Oracle multichain convert

User-facing and desk convert across **any asset** without agent custody.

## When to load
- BTC → ETH / any CEXy pair
- SOL ↔ EVM
- “Is there an alternative to ChangeNOW?”
- Public Oracle convert product
- Wiring `CHANGENOW_API_KEY` or deBridge prepare

## Rails (shipped in multiagent-desk)

| Rail | Best for | Key | User action |
|---|---|---|---|
| **deBridge DLN** | SOL↔EVM, EVM↔EVM | None | Sign unsigned tx |
| **ChangeNOW** | BTC L1, long-tail (~1.3k tickers) | Free partner key | Send to deposit address |
| **Desk DEX/bridges** | EVM already covered | Usually none | Sign/prepare per venue |

## Convert router (single entry)
- Code: `src/router/convert-route.mjs`
- Desk: `data.oracle.routing.convert` / `convertQuote` / `convertPrepare`
- Prefer: BTC/long-tail → ChangeNOW; EVM/Sol → **deBridge**
- Always `executionReady: false`, public-safe
- Docs: `docs/CONVERT_ROUTER.md`
- Tests: `test/convert-route.test.mjs`

```js
await data.oracle.routing.convertQuote({
  from: { currency: "sol" },
  to: { chainId: 8453, currency: "eth" },
  amountBase: "100000000",
  senderAddress: "<sol>",
  toAddress: "0x...",
});
```

## deBridge notes
- Provider `debridge`; API `https://api.dln.trade/v1.0`
- Solana DLN chainId **`7565164`**; SOL mint `11111111111111111111111111111111`
- EVM native `0x0000…0000`
- create-tx: EVM `{to,data,value}` or Solana serialized `tx.data`
- Send real User-Agent (bare urllib may 403)
- Docs: `docs/DEBRIDGE_CONVERT.md`

## ChangeNOW notes
- Provider `changenow`; prepare-only deposit exchange
- Currencies public; estimate/create need `CHANGENOW_API_KEY` header `x-changenow-api-key`
- **API key free** (partner signup, no monthly fee); fee in rate; optional ~0.4% partner cut
- Agent **cannot** create the key for DEMI — he must sign up and install env (0600)
- Never auto-fund deposit from agent without separate GO
- Docs: `docs/CHANGENOW_CONVERT.md`

## Public product rules
- Server holds ChangeNOW key only
- No public agent/exec hot path for convert spend
- UI uses convert router, not a single hard-coded venue
- Copy: user sends/signs — Oracle does not hold bags

## Not this skill
- Flash-loan MEV (Base/Arb shadows) → `oracle-mev-flashloan-plane`
- Executor gas hops (Arb→Base Relay) → `cross-chain-executor-funding`
- RH Chain 4663 trades → rhbot / RH skills

## Pitfalls
- Claiming ChangeNOW is BTC-only — it includes SOL and long-tail
- Treating deBridge as BTC L1 solution — weak; use ChangeNOW
- Pasting API keys in chat
- Agent inventing a free anonymous key (estimate/create always 401 without partner key)
- Auto-broadcasting deBridge txs from agent without GO
- Confusing MEV “0 qualified opps” with convert product funding needs

## Related
- Desk ops: `multichain-exec-desk`
- Keys: `protocol-api-key-integration`
- Public UX: `oracle-public-product`

## References
- `references/pair-routing.md` — preference table and amounts
