npx skills add https://github.com/openclaw/skills
starchild-ai-agent/official-skills
1inch
1inch DEX aggregator: same-chain EVM swaps, SOL↔EVM cross-chain, limit orders. Use when swapping tokens with best routing or placing limit orders (e.g. ETH→USDC on Base, SOL→ETH cross-chain, limit buy ARB at 0.80).
Installation
npx skills add starchild-ai-agent/official-skills --skill 1inch
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Helps users discover and install agent skills when they ask questions like "how do I do X", "fi…
3.3M installsBrowser automation CLI for AI agents. Use when the user needs to interact with websites, includ…
810.4K installsReview UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "chec…
617.3K installsBuild, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and …
576.5K installsPrepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Te…
568.3K installsAlso in this package
Other skills from starchild-ai-agent/official-skills · top by installs.
npx skills add starchild-ai-agent/official-skills
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Skill metadata
Parsed from SKILL.md frontmatter.
More metadata
- starchild
- {"emoji":"🦄","skillKey":"1inch","requires":{"env":["ONEINCH_API_KEY","WALLET_SERVICE_URL"]}}
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md8,335 B -
docs
SUMMARY.md233 B
History
- First seen on skills.sh
- First recorded snapshot · 328 installs
SKILL.md
1inch (Script-First, Install-and-Use)
This skill is designed for your architecture: do not rely on platform-injected tools.
- ✅ Uses only skill-local scripts under
skills/1inch/scripts/ - ✅ Agent executes scripts via
bash(python3 ...) - ✅ No
oneinch_*tool calls required
Why this version fixes “tool not found”
Old design depended on runtime tool registration (oneinchquote, oneinchswap, ...). If tool injection fails, agent is blocked.
New design uses deterministic local scripts:
- call 1inch HTTP API directly
- call wallet service directly (OIDC via
/.fly/api) - print JSON result
So after install, the agent always has a runnable path.
Files
scripts/oneinchlib.py— shared client + wallet/OIDC helpersscripts/tokens.py— token search/listscripts/quote.py— quote onlyscripts/check_allowance.py— allowance checkscripts/approve.py— approve tx broadcastscripts/swap.py— swap execution (optional auto-approve)scripts/runswapflow.py— one-command flow (quote + optional approve + swap + post-trade balance verification)
Environment
Required:
ONEINCHAPIKEYWALLETSERVICEURL(default fallback exists)- sc-proxy connectivity for 1inch API (mandatory)
Assumptions:
- Running on Fly Machine with
/.fly/apiunix socket for OIDC token minting.
sc-proxy requirement (critical)
This skill enforces 1inch calls through sc-proxy.
- It reads proxy from
HTTPPROXY/HTTPSPROXYfirst, else falls back toPROXYHOST+PROXYPORT. - If no proxy env is found, scripts fail fast with a clear error instead of silently direct-connecting.
Supported chains
ethereum, arbitrum, base, optimism, polygon, bsc, avalanche, gnosis
Agent execution rules (IMPORTANT)
When user asks for 1inch actions, follow this exact pattern:
- **Never call
oneinch_*tools** - Run local scripts with
bash+python3 skills/1inch/scripts/<script>.py ... - Parse JSON output and respond with concise summary
- For write actions, always do post-check using wallet balance tools (if available) or rerun script-based checks
Canonical mapping
- “查 token 地址 / 列 token” →
tokens.py - “先报价 / 看能换多少” →
quote.py - “检查授权” →
check_allowance.py - “授权” →
approve.py - “执行兑换” →
swap.py
Command examples
1) Search token
python3 skills/1inch/scripts/tokens.py --chain polygon --search POL --limit 10
2) Quote: 1 USDC -> POL
python3 skills/1inch/scripts/quote.py --chain polygon --from USDC --to POL --amount 1
3) Check allowance (USDC)
python3 skills/1inch/scripts/check_allowance.py --chain polygon --token USDC
4) Approve USDC (unlimited)
python3 skills/1inch/scripts/approve.py --chain polygon --token USDC
5) Swap: 1 USDC -> POL (auto-approve if needed)
python3 skills/1inch/scripts/swap.py --chain polygon --from USDC --to POL --amount 1 --slippage 1.0 --auto-approve
6) One-command full flow (recommended)
python3 skills/1inch/scripts/run_swap_flow.py --chain polygon --from USDC --to POL --amount 1 --slippage 1.0 --auto-approve
Tune retries when needed:
python3 skills/1inch/scripts/run_swap_flow.py --chain polygon --from USDC --to POL --amount 1 --slippage 1.0 --auto-approve --swap-retries 3 --swap-retry-backoff 2
Default workflow for “买 X USDC 的 POL”
Preferred deterministic sequence:
runswapflow.py --auto-approve- Read JSON result and report quote, tx submission result, and verification deltas
Fallback manual sequence (if user asks step-by-step):
quote.py(confirm expected output)swap.py --auto-approve- Verify with fresh balances (before/after)
If swap returns wallet policy rejection:
- load
wallet-policyskill - propose wildcard baseline (
DENY exportPrivateKey,ALLOW *) - after user confirms, rerun swap command
Error handling
Unknown chain→ ask user to choose supported chain1inch API 4xx/5xx→ show raw error;runswapflow.pyautomatically retries transient/swap5xx (default: 2 retries with exponential backoff)Not enough <token> balancefrom 1inch → likely symbol mapped to a different token variant (e.g. USDC.e vs USDC); rerun with explicit token address fromtokens.pyWallet API 4xx/5xx→ show raw error, do not fabricate tx hashinsufficient allowance(without auto-approve) → rerun with--auto-approveor runapprove.pypolicyrejection → propose policy update then retry
Notes
- Amount input is human units (e.g.
--amount 1= 1 USDC), script handles decimal conversion. - Token symbol resolution comes from 1inch
/tokenson the selected chain. - If a symbol has multiple variants on a chain (e.g.,
USDC/USDC.e), prefer passing token contract address explicitly to avoid ambiguity. - For native token input, use
native/ETH.
Quick smoke test
python3 skills/1inch/scripts/quote.py --chain polygon --from USDC --to POL --amount 1
If this works, the skill is operational in script mode.
Script Reference (CLI args)
This skill exposes scripts (not Python functions). Run them via bash + python3 skills/1inch/scripts/<name>.py <args>. All scripts emit JSON on stdout — parse with json.loads(...) or just print the output.
Common arguments
| Arg | Required | Notes |
|---|---|---|
--chain |
yes | One of ethereum, arbitrum, base, optimism, polygon, bsc, avalanche, gnosis |
--from, --to |
yes (swap/quote) | Token symbol (USDC, POL, etc.) or contract address. Use native / ETH for native gas token. |
--amount |
yes (swap/quote) | Human units (e.g. 1 = 1 USDC, decimal conversion handled internally) |
--slippage |
optional | Percent (default 1.0) |
--token |
yes (allowance/approve) | Token symbol or address |
--auto-approve |
optional flag | swap/runswapflow only — auto-broadcasts approve if allowance insufficient |
--swap-retries |
optional | runswapflow only — retries on /swap 5xx (default 2) |
--swap-retry-backoff |
optional | runswapflow only — backoff seconds (default 1) |
Scripts
| Script | Purpose | Required args |
|---|---|---|
tokens.py |
List or search tokens on a chain | --chain + --search SYM and/or --limit N |
quote.py |
Get quote (no broadcast) | --chain --from --to --amount |
check_allowance.py |
Check ERC-20 allowance to 1inch router | --chain --token |
approve.py |
Broadcast approve tx (unlimited) | --chain --token |
swap.py |
Execute swap | --chain --from --to --amount (+ optional --slippage, --auto-approve) |
runswapflow.py |
One-command quote + (auto-approve) + swap + post-trade balance check | Same as swap.py (+ optional retry args) |
Recommended flow
For ANY user "swap X for Y" request, default to runswapflow.py --auto-approve. It handles the full chain end-to-end and verifies via wallet balance read after broadcast.
If user asks "just quote, don't execute" → quote.py only.
Output schema (runswapflow.py)
JSON with these top-level keys:
quote—{fromToken, toToken, fromAmount, toAmount, estimatedGas, ...}approve—{required, txHash, success}(only if--auto-approve)swap—{txHash, success, error?}verification—{frombalancebefore, frombalanceafter, tobalancebefore, tobalanceafter, deltain, deltaout}
If wallet returns a policy rejection, swap.success = false and swap.error will mention policy. Load the wallet-policy skill, propose a wildcard baseline, then rerun.