# Xflows Bridge

> Cross-chain bridge operations using the xflows CLI (Wanchain XFlows). Use when the user wants to: (1) create or manage crypto wallets for cross-chain use, (2) query supported chains, tokens, pairs, bridges, or DEXes, (3) get cross-chain swap quotes and fee estimates, (4) send cross-chain transactions between EVM chains, (5) track cross-chain transaction status and completion, (6) send native tokens (ETH/BNB/WAN) on the same chain, (7) send ERC20 tokens on the same chain, (8) check balance of any address (no wallet needed). Triggers on: cross-chain, bridge, swap tokens between chains, xflows, Wanchain, WanBridge, QUiX, move/transfer tokens from Ethereum/BSC/Polygon/Arbitrum/Optimism/Avalanche/Wanchain to another chain, bridge ETH/BNB/USDC/USDT, transfer ETH, send tokens, ERC20 transfer, check balance, query address balance.

- Skill: `dvcrn/xflows-bridge` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add dvcrn/xflows-bridge`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/xflows-bridge/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/xflows-bridge

---


# XFlows Cross-Chain Bridge

Operate the `xflows` CLI to perform cross-chain bridge transactions via the Wanchain XFlows protocol, as well as same-chain native token and ERC20 token transfers.

## Prerequisites

Ensure `xflows` is installed: `npm install -g xflows`. Verify with `xflows --version`.

## Core Workflow

For any cross-chain transfer, follow this sequence:

1. **Wallet** -- Ensure a wallet exists (`xflows wallet list`), create if needed
2. **Discover** -- Find supported chains, tokens, and pairs for the route
3. **Quote** -- Get estimated output and fees
4. **Send** -- Execute with `--dry-run` first, then for real
5. **Track** -- Monitor status until completion

## Command Quick Reference

See [references/commands.md](references/commands.md) for complete flag details.

### Wallet Management

```bash
xflows wallet create --name <n>                                    # new wallet
xflows wallet create --name <n> --encrypt --password <pw>          # encrypted
xflows wallet create --name <n> --private-key 0x...                # import key
xflows wallet list                                                 # list all
xflows wallet show --name <n> [--password <pw>]                    # show key
xflows wallet balance --name <n> --chain-id <id> [--password <pw>] # balance (own wallet)
xflows wallet balance --address <addr> --chain-id <id>             # balance (any address)
xflows wallet token-balance --name <n> --chain-id <id> --token <addr> [--decimals <n>] [--password <pw>] [--rpc <url>] # ERC20 balance (own wallet)
xflows wallet token-balance --address <addr> --chain-id <id> --token <addr> [--decimals <n>] [--rpc <url>] # ERC20 balance (any address)
xflows wallet delete --name <n> --force                            # delete
```

### Query Routes

```bash
xflows chains [--chain-id <id>] [--quix]          # supported chains
xflows tokens [--chain-id <id>] [--quix]          # supported tokens
xflows pairs --from-chain <id> [--to-chain <id>]  # bridgeable pairs
xflows bridges                                     # available bridges
xflows dexes                                       # available DEXes
xflows rpc                                         # configured RPC endpoints
```

### Quote

```bash
xflows quote \
  --from-chain <id> --to-chain <id> \
  --from-token <addr> --to-token <addr> \
  --from-address <addr> --to-address <addr> \
  --amount <amount> \
  [--bridge wanbridge|quix] [--slippage 0.01] [--dex wanchain|rubic]
```

### Send Transaction

```bash
xflows send \
  --wallet <name> [--password <pw>] \
  --from-chain <id> --to-chain <id> \
  --from-token <addr> --to-token <addr> \
  --to-address <addr> --amount <amount> \
  [--bridge wanbridge|quix] [--slippage 0.01] [--dry-run] [--gas-limit <n>] [--rpc <url>]
```

### Transfer (Same-Chain Native Token)

```bash
xflows transfer --wallet <name> --chain-id <id> --to <addr> --amount <amount> \
  [--password <pw>] [--rpc <url>] [--gas-limit <n>] [--dry-run]
```

### Transfer Token (Same-Chain ERC20)

```bash
xflows transfer-token --wallet <name> --chain-id <id> \
  --token <addr> --to <addr> --amount <amount> \
  [--decimals <n>] [--password <pw>] [--rpc <url>] [--gas-limit <n>] [--dry-run]
```

- Auto-detects token decimals and symbol from the contract (or use `--decimals` to override)
- Checks token balance before sending

### Track Status

```bash
xflows status \
  --hash <txHash> \
  --from-chain <id> --to-chain <id> \
  --from-token <addr> --to-token <addr> \
  --from-address <addr> --to-address <addr> \
  --amount <amount> \
  [--poll --interval 10]
```

## Key Concepts

### Token Addresses

- Native tokens (ETH, BNB, MATIC, WAN, etc.): `0x0000000000000000000000000000000000000000`
- ERC-20 tokens: find via `xflows tokens --chain-id <id>`

### Common Chain IDs

| Chain | ID | Chain | ID |
|-------|----|-------|----|
| Ethereum | 1 | Arbitrum | 42161 |
| BSC | 56 | Optimism | 10 |
| Polygon | 137 | Base | 8453 |
| Avalanche | 43114 | Wanchain | 888 |

### Query Any Address Balance

Both `wallet balance` and `wallet token-balance` support `--address` to query any address without needing a local wallet:

```bash
# Check any address's ETH balance
xflows wallet balance --address 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 --chain-id 1

# Check any address's USDC balance
xflows wallet token-balance --address 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 \
  --chain-id 1 --token 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
```

Provide either `--name` (local wallet) or `--address` (any address). When `--address` is used, no wallet file or password is needed.

### Encrypted Wallets

When a wallet was created with `--encrypt`, every command that uses the private key (`send`, `transfer`, `transfer-token`, `wallet show`, `wallet balance`) requires `--password <pw>`.

### Wanchain Gas Rule

Sending from Wanchain (chainId 888) automatically enforces minimum gasPrice of 1 gwei. No manual action needed.

### Status Codes

| Code | Meaning | Terminal? |
|------|---------|-----------|
| 1 | Success | Yes |
| 2 | Failed | Yes |
| 3 | Processing | No |
| 4/5 | Refunded | Yes |
| 6 | Trusteeship (manual intervention) | Yes |
| 7 | Risk transaction (AML flagged) | Yes |

## Patterns

### Find a Token Address

```bash
xflows tokens --chain-id 1 | jq '.data[] | select(.tokenSymbol == "USDC")'
```

### Safe Execution (always dry-run first)

```bash
# Preview
xflows send --wallet alice --from-chain 1 --to-chain 56 \
  --from-token 0x0000000000000000000000000000000000000000 \
  --to-token 0x0000000000000000000000000000000000000000 \
  --to-address 0xRecipient --amount 0.1 --dry-run

# Execute (remove --dry-run)
xflows send --wallet alice --from-chain 1 --to-chain 56 \
  --from-token 0x0000000000000000000000000000000000000000 \
  --to-token 0x0000000000000000000000000000000000000000 \
  --to-address 0xRecipient --amount 0.1
```

### Same-Chain Native Transfer

```bash
# Send 0.1 ETH on Ethereum
xflows transfer --wallet alice --chain-id 1 --to 0xRecipient --amount 0.1

# Dry run first
xflows transfer --wallet alice --chain-id 1 --to 0xRecipient --amount 0.1 --dry-run
```

### Same-Chain ERC20 Transfer

```bash
# Send 100 USDC on Ethereum (auto-detect decimals)
xflows transfer-token --wallet alice --chain-id 1 \
  --token 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 \
  --to 0xRecipient --amount 100

# Specify decimals manually
xflows transfer-token --wallet alice --chain-id 1 \
  --token 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 \
  --to 0xRecipient --amount 100 --decimals 6
```

### Poll Until Complete

```bash
xflows status --hash 0xTxHash \
  --from-chain 1 --to-chain 56 \
  --from-token 0x0000000000000000000000000000000000000000 \
  --to-token 0x0000000000000000000000000000000000000000 \
  --from-address 0xSender --to-address 0xReceiver \
  --amount 0.1 --poll --interval 10
```

