onekeyhq/onekey-wallet-skills · Archived

onekey-swap

Use when the user asks to swap tokens, trade ETH for USDC, buy tokens, sell tokens, exchange crypto, get a swap quote, check swap status, perform a cross-chain swap or bridge, swap SOL/SPL, swap BTC/TBTC, sign a BTC PSBT, 换币, 买币, 卖币, ?

First seen May 19, 2026

Installation

$ npx skills add onekeyhq/onekey-wallet-skills --skill onekey-swap

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Also in this package

Other skills from onekeyhq/onekey-wallet-skills.

npx skills add onekeyhq/onekey-wallet-skills

Browse all from onekeyhq/onekey-wallet-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
License LICENSE
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version0.3.0
LicenseApache-2.0
More metadata
author
OneKey
version
0.3.0
homepage
https://onekey.so

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,463 B
  • docs SUMMARY.md 477 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 3 installs

SKILL.md

Before any operation, read references/common.md for safety, chain, and scam rules.

Swap Skill

Direct Invocation Fallback

  • If this skill is directly invoked for a read-only wallet or market request, discover the schema-backed command and apply Cross-Domain Fallback instead of only saying another skill is needed.
  • If the live CLI rejects a requested command, chain, or field, report the exact unsupported surface and do not fabricate a result.

Domain Rules

  • This skill owns swap-quote, swap-build, swap-execute, swap-status, swap-networks, and swap-history.
  • convert is a swap alias and preserves the stated source asset, destination asset, amount, and chain.
  • Standard spot flow is balance check when needed, internal security-audit, quote, confirmation, build, then execute.
  • Never merge quote confirmation and execution into the same assistant turn.
  • Cross-chain requests must preserve source chain, destination chain, and bridge intent; never silently collapse a bridge into a same-chain swap.
  • Solana swaps are supported for SOL and SPL tokens. Preserve Solana chain context and SPL mint addresses; do not convert them to EVM addresses.
  • BTC swaps are supported for native BTC. Preserve fromAddressType and toAddressType when provided; if a required BTC address type is missing, ask only for the missing address type.
  • BTC swap-execute supports signOnly; a sign-only PSBT response is Preview ready: style output, not a broadcasted Submitted: swap.
  • swap-networks --bridge is the discovery path for cross-chain support. Do not invent a bridge network if discovery does not list it.
  • Exact-amount approvals are preferred; unlimited approvals need a separate warning and should stay separate from the trade.
  • BTC and Solana swaps do not use ERC-20 approval. Do not warn about EVM allowances for BTC native or SOL native routes unless the route actually includes an EVM token approval.
  • Spot limit orders are discovery-first flows that preserve side, size, price, and chain exactly.

Domain Routing

Intent Handling
Spot swap, bridge, buy, sell, approval, BTC/Solana swap, BTC sign-only PSBT, and spot limit order Keep in this skill.
Other intents (wallet reads, market research, audits) when no external router is available Defer to Cross-Domain Fallback in references/common.md; answer safely instead of refusing or saying another skill is needed.

Error Handling

  • If quote/build/execute returns an error, report the exact route, chain, provider/order field if known, and whether funds were not moved, only signed, or submitted.
  • Never recover from swap errors by silently changing chain, source token, destination token, address type, slippage, provider, or recipient.

Fast Patterns

  • swap 1 ETH to USDC -> quote on the stated or inferred chain, then confirm before build and execute.
  • convert 2 SOL to USDC on Solana -> confirm it as a Solana swap instead of reopening the route.
  • swap 0.2 SOL to BONK -> keep Solana, resolve BONK as SPL token, quote, then confirm before build/execute.
  • swap 0.01 BTC to USDC -> use native Bitcoin if no EVM context exists; require/preserve BTC address type before build or execute.
  • swap 0.01 BTC to USDC using taproot and sign only -> quote/build with taproot, then after confirmation execute with sign-only and return signed PSBT details, not a broadcast hash.
  • swap BTC to USDC on Ethereum -> clarify native BTC vs WBTC; never silently substitute WBTC.
  • buy $200 of ARB -> default the funding asset to USDC; if Ethereum context already exists, keep Ethereum instead of auto-switching to Arbitrum.
  • buy $200 of PEPE with Ethereum context -> keep Ethereum and confirm the buy instead of re-asking the chain.
  • bridge 500 USDC from Ethereum to Base -> keep both chains explicit and confirm the bridge route.
  • bridge 500 USDC from Solana to Ethereum -> preserve source Solana and destination Ethereum in route context, use swap-networks --bridge for discovery first, then quote only if a supported route is listed; otherwise report unsupported.
  • buy 1000 USDC of LINK at 0x5149... on Ethereum -> confirm the Ethereum trade and keep the audit as an internal next safety step.
  • swap 0.5 BTC to USDC on Ethereum -> clarify WBTC versus native BTC before quoting.
  • approve unlimited USDC spending for 0x...69 -> warn that unlimited approval is dangerous and prefer an exact-amount approval.
  • swap 500 USDC to WETH at 0x4E15... -> stop on the WETH or contract mismatch; do not suggest a replacement route.
  • place a limit buy order for 0.5 ETH at $3000 -> treat it as a spot limit-order intent and confirm side, size, price, and chain.
  • yes, confirm the swap after a complete swap confirmation -> respond with Submitted: using only the already-confirmed fields, not another preview.