Broadcast an already-signed transaction
broadcast_txRelay a transaction the user's wallet already signed, unchanged, to 51 chains. SwapChan never signs, never holds keys and cannot alter signed bytes; it only relays. 51 chains. EVM (23): Ethereum, Base, Arbitrum One, OP Mainnet, Polygon PoS, BNB Smart Chain, Avalanche C-Chain, Linea, Scroll, zkSync Era, Gnosis, Mantle, Celo, Blast, Berachain, Sonic, Unichain, Fantom, Monad, Katana, HyperEVM, Ethereum Classic, EthereumPoW; Bitcoin and Bitcoin-family/old coins (18): Bitcoin, Bitcoin Cash, Bitcoin Gold, Litecoin, Dogecoin, Feathercoin, Dash, DigiByte, Ravencoin, Vertcoin, Viacoin, Groestlcoin, Reddcoin, Peercoin, Zcash (transparent), Bitcoin SV, Monacoin, Terracoin; Other ledgers (10): Solana, Tron, XRP Ledger, Stellar, Algorand, Cosmos Hub, Polkadot relay chain, Polkadot Asset Hub, TON, Cardano. Formats: EVM signed raw hex with an EIP-155 chainId matching the chain (pre-EIP-155 txs are refused on the added chains), Solana base64, Tron JSON, Bitcoin-family raw tx hex (not a PSBT), XRP tx_blob hex, Stellar envelope XDR base64, Algorand signed msgpack base64, Cosmos Hub TxRaw base64, Polkadot extrinsic 0x hex, TON BoC base64, Cardano CBOR hex. verify_tx checks run first on the 9 core EVM chains, Solana and Tron (warnings only unless strict=true). verify_tx cannot decode Bitcoin or any of the other chains, so strict=true refuses Bitcoin and every other chain outside that core set. Bitcoin-family transactions are not checked against the network: sign for the correct coin; BCH, BSV and other forks can share pre-split coins, so one transaction may be valid on both. Optional private submission via Flashbots Protect on Ethereum mainnet. Any chain not listed: broadcast from the coin's own wallet. Returns hash + statusUrl/explorer. Result includes display markdown with chan images: show it to the user. How to combine this with the other tools: swapchan_playbook (workflows: find-money, best-swap, rebalance, revoke-approvals, bridge-stuck, token-safety, recover-old-wallet).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"chainId": "<chainId>",
"tx": "<tx>"
},
"name": "broadcast_tx"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tx | Yes | Already-signed tx bytes / JSON | |
| strict | No | Refuse to broadcast when verify_tx verdict is danger | |
| chainId | Yes | Chain to relay to: an EVM chain id or one of these keys: 1, 8453, 42161, 10, 137, 56, 43114, 59144, 534352, solana, bitcoin, tron, 324, 100, 5000, 42220, 81457, 80094, 146, 130, 250, 143, 747474, 999, 61, 10001, bch, btg, ltc, doge, ftc, dash, dgb, rvn, vtc, via, grs, rdd, ppc, zec, bsv, mona, trc, xrp, xlm, algo, atom, dot, dot-assethub, ton, ada (names like eth, base, solana, bitcoin, tron also work). | |
| private | No | Ethereum: submit via Flashbots Protect |