CROSS Skills
Bridge (CROSSD)

CROSSD Bridge · AI Agent Skill

Bridge CROSS / CROSSD / USDT between BSC and CROSS Chain by sentence

Drive the CrossDefi bridge backend through natural-language prompts. Get a fee-breakdown quote, then execute the bridge with an accurate per-tx native-gas check — the skill refuses to sign if your BNB / CROSS balance can't cover the actual cost, and tells you exactly how much you're short.

Open SKILL.md ↗View repo ↗

Install

Clone https://github.com/to-nexus/skill-cross-crossd into a temporary directory and run the install.sh script inside it to install the skill-cross-crossd skill into my Claude Code environment. Tell me the result in one line when you're done.
  1. For personal testing, keep signer config in the skill .env only for bridge + history.
  2. For team, hosted-agent, or production funds, prefer Vault/KMS/HSM-backed signing.
  3. pairs / tokens / quote / status work without a key.
  4. Before signing, the skill estimates each upcoming tx's gas, multiplies by current gasPrice with 1.2× headroom, adds msg.value, and refuses with insufficient_gas (including a per-tx breakdown) if your native balance can't cover the total. Top up the wallet with the shortfall and retry.
  5. Sub-path selection (native / permit / approve) is automatic. Same-chain swap and multi-step swap-bridge routes (not in /bridge/pairs) are recognized + quoted but execution waits for the swap-router workstream.

Heads-up: CROSSD Bridge runs on local agent runtimes only — see the Where it runs section for the supported list. Hosted chat environments cannot execute this skill.

Where it runs

Supported

Claude Code (CLI)OpenClawCursor Composer / Background AgentCodex CLIAiderGooseGemini CLIOpenInterpreter

Not supported

Claude.ai (web)ChatGPT (web)Gemini (web)GitHub Copilot Chat (web)

What you can do

pairs

Canonical 8-pair UX list plus the raw `/bridge/pairs` catalog (the actual gate).

🟢 Read
tokens

Token metadata by chain (decimals, name, symbol).

🟢 Read
quote

Fee-breakdown quote for any pair (`valueWei`, `gasFeeWei`, `exFeeWei`, `totalPayableWei`, `belowMinimum`). Emits `canonical`, `canonicalKind`, `executable`.

🟢 Read
bridge

Execute any pair in `/bridge/pairs` with a per-tx native-gas guard. Refuses with `insufficient_gas` (incl. breakdown) if BNB / CROSS can't cover actual cost. Auto-picks native / permit / approve sub-path.

🔴 Write · tx
status

Poll progress of an in-flight bridge by `permitId` or tx hash.

🟢 Read
history

Bridge history for the resolved EOA.

🟡 Read · addr

Try it · natural-language prompts

Copy any of these into your agent — they map 1-to-1 onto a skill command.

List CROSSD-supported pairs
8-pair whitelist with `kind`
Quote 5 native CROSS bridging to BSC CROSS
Row #1 `bridge` quote with fees
Bridge 5 native CROSS to BSC
Row #1 → tx hash + explorer URL (native path)
Bridge 1 BSC CROSS to CROSS chain
Row #3 → permitId, polls status (permit path)
Bridge 10 USDT on CROSS to USDT on BSC
Row #8 → approve tx + bridge tx (approve path)
Bridge 5 USDT on BSC to USDT on CROSS Chain
off-canonical (in `/bridge/pairs`) → approve tx + bridge tx
Quote swapping 5 CROSS on CROSS chain into CROSSD
Row #2 quote (executable: false, kind: swap)
Quote 10 CROSSD into USDT on BSC
Row #5 quote (executable: false, kind: swap-bridge)
Quote 20 USDT on BSC into CROSSD
Row #6 quote (executable: false, kind: swap-bridge)
Check the status of permit-hash 12345
Progress (pending / confirmed)
Show my last 10 bridges
History table

Command reference

commandargsauthmutationdescription
pairsreadEmit the canonical 8-pair UX list plus the raw `/bridge/pairs` catalog (executable gate).
tokens--chain <id>readToken metadata for the supported chains (BSC 56 or CROSS 612055).
quote<FROM> <TO> <AMOUNT>readFee-breakdown quote. Emits `canonical`, `canonicalKind`, `executable`.
bridge<FROM> <TO> <AMOUNT> [--confirm] [--max-approve] [--path=native|permit|approve]PKtxExecute any pair in `/bridge/pairs`. Refuses with `insufficient_gas` (with per-tx breakdown) when native balance is too low.
status<permitId>|--tx <hash> [--watch <sec>]readProgress poll.
history[--owner <0x…>] [--page N] [--size N]PKreadBridge history.

Safety & credentials

This skill signs on-chain transactions for routes in `/bridge/pairs`

  • 🔴 Signs on-chain transactions — local signer config required only for bridge + history; quotes work without.
  • Auto sub-path selection: nativebridgeToken(...) with msg.value = value + gasFee + exFee (canonical row #1).
  • permit — EIP-2612 sign + POST /bridge/permit; backend submits the on-chain tx, user pays no source-chain gas (row #3).
  • approve + bridgeToken — exact-amount approve() then bridgeToken(...) with msg.value = 0 (row #8 + off-canonical USDT BSC → USDT CROSS). --max-approve opts into unlimited.

Troubleshooting

insufficient_gas?
Your wallet's native balance (BNB for BSC, CROSS for CROSS Chain) is below the actual estimated gas cost + msg.value. The envelope's gasShortage block shows balanceHuman, requiredHuman, shortHuman, plus a per-tx breakdown (labels: approve, bridgeToken). Top up the wallet with the shortfall and retry.
unsupported_pair?
The FROM/TO pair isn't in the live /bridge/pairs catalog. This includes the canonical same-chain swap rows and multi-step swap-bridge rows in §4 — informational only until a swap-router integration ships. Run pairs and pick a /bridge/pairs entry.
below_minimum?
Your amount is below /bridge/token-config.minimumValue (currently 5 token units for the live config). Increase the amount.
awaiting_confirm?
The amount exceeds CONFIRM_THRESHOLD. Re-run with --confirm once the user explicitly approves.
status stuck on pending?
Waiting for destination-chain confirmation. Typical 30 s–5 min; the quote envelope's etaSeconds reports the per-route expected time.
When does the skill sign vs quote-only?
It signs any pair in the live /bridge/pairs catalog. Canonical UX rows whose kind is swap or swap-bridge are NOT in /bridge/pairs (same-chain or multi-step), so quote works but bridge.mjs declines with unsupported_pair. Pairs outside the canonical 8 that happen to live in /bridge/pairs (e.g. USDT BSC → USDT CROSS Chain) are fully executable.