Agent skill

Uniswap V3 Swap

by keypo-us in keypo-us/keypo-cli

A skill your agent uses when the user wants to swap tokens on Base Sepolia (or Base mainnet) using Uniswap V3.

MITAuto-check passedBackend & APIs

Install Uniswap V3 Swap

skills CLI
$ npx skills add keypo-us/keypo-cli --skill uniswap-v3-swap -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install keypo-us/keypo-cli uniswap-v3-swap --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/keypo-us/keypo-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/contracts/uniswap-v3 .claude/skills/uniswap-v3-swap && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
uniswap-v3-swap
GitHub stars
182
Token cost
~3.2k tokens
SKILL.md length
1,068 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when the user wants to swap tokens on Base Sepolia (or Base mainnet) using Uniswap V3.

  • Works in 7 steps: Resolve Token Addresses and Decimals → Find a Pool → Check Pool Liquidity → …
  • The user wants to swap tokens on Base Sepolia (or Base mainnet) using Uniswap V3
  • SKILL.md covers Contract Addresses, Swap Workflow, exactInputSingle Parameters and Slippage Protection, plus 3 more sections
  • Calls python3; reaches sepolia.base.org

What it does

Uniswap V3 Swap is an agent skill from keypo-us/keypo-cli. Use when the user wants to swap tokens on Base Sepolia (or Base mainnet) using Uniswap V3. Handles any ERC-20 token pair including ETH wrapping/unwrapping. The agent discovers pools, gets quotes, constructs calldata, and executes swaps via keypo-wallet. Also use when the user says "swap", "trade", "exchange tokens", "buy USDC", "sell WETH", or asks about Uniswap liquidity or pricing on Base. Requires Foundry (cast) for read calls and keypo-wallet for transaction execution.

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs. It works with Uniswap, Ethereum and Circle USDC. The repository describes itself as: Local-first, hardware-bound key management and encrypted secrets for AI agents. The licence is MIT.

When your agent uses it

  • The user wants to swap tokens on Base Sepolia (or Base mainnet) using Uniswap V3
  • The user says swap
  • Exchange tokens
  • Asks about Uniswap liquidity

Example prompts

  • “exchange tokens”
  • “buy USDC”
  • “sell WETH”
  • “/uniswap-v3-swap”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Resolve Token Addresses and Decimals
  2. Find a Pool
  3. Check Pool Liquidity
  4. Get a Quote
  5. Check Balance and Allowance
  6. Construct and Execute the Swap
  7. Verify the Result

What it can do on your machine

Read from SKILL.md and the folder at commit 7331b6f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • sepolia.base.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Uniswap V3 Swap loads about 3.2k tokens when it runs. Until then it costs about 123 tokens; SKILL.md has 1,068 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~123
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from keypo-us/keypo-cli at commit 7331b6f, republished under its MIT licence (© keypo-us). 1,068 words, ~3,155 tokens.

Download SKILL.mdSave it as .claude/skills/uniswap-v3-swap/SKILL.md (or your agent's skills folder).
name
uniswap-v3-swap
description
Use when the user wants to swap tokens on Base Sepolia (or Base mainnet) using Uniswap V3. Handles any ERC-20 token pair including ETH wrapping/unwrapping. The agent discovers pools, gets quotes, constructs calldata, and executes swaps via keypo-wallet. Also use when the user says "swap", "trade", "exchange tokens", "buy USDC", "sell WETH", or asks about Uniswap liquidity or pricing on Base. Requires Foundry (cast) for read calls and keypo-wallet for transaction execution.
license
MIT
metadata.author
keypo-us
metadata.version
0.1.0
metadata.compatibility
Requires Foundry (cast) and keypo-wallet. Works on Base Sepolia and Base mainnet.

Uniswap V3 Swap — Generalized Token Swaps on Base

Swap any ERC-20 token pair on Uniswap V3. This skill teaches the agent to discover the right pool, quote the expected output, construct the swap calldata, and execute via keypo-wallet — for any token pair, not just predetermined ones.


Contract Addresses

Base Sepolia (chain 84532)
ContractAddress
V3 Factory0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24
SwapRouter0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4
QuoterV20xC5290058841028F1614F3A6F0F5816cAd0df5E27
WETH0x4200000000000000000000000000000000000006
Base Mainnet (chain 8453)
ContractAddress
V3 Factory0x33128a8fC17869897dcE68Ed026d694621f6FDfD
SwapRouter0x2626664c2603336E57B271c5C0b26F421741e481
QuoterV20x3d4e44Eb1374240CE5F1B871ab261CD16335B76a
WETH0x4200000000000000000000000000000000000006
Known Testnet Tokens (Base Sepolia)
TokenAddressDecimals
USDC0x036CbD53842c5426634e7929541eC2318f3dCF7e6
WETH0x420000000000000000000000000000000000000618

For tokens not listed here, ask the user for the contract address, or use the contract-learner skill to look up a token by address.


Swap Workflow

Follow these steps in order. Each step is a separate cast call or cast calldata command. Do not skip steps — the agent must gather information before constructing the transaction.

Step 1: Resolve Token Addresses and Decimals

Determine the tokenIn and tokenOut contract addresses. If the user says "ETH", use the WETH address — Uniswap V3 only works with ERC-20 tokens, not native ETH.

For each token, confirm its decimals:

bash
cast call <token-address> "decimals()(uint8)" --rpc-url https://sepolia.base.org

You need decimals to convert human-readable amounts (e.g. "0.001 ETH", "50 USDC") to raw integers:

  • 0.001 ETH → 1000000000000000 (0.001 × 10^18)
  • 50 USDC → 50000000 (50 × 10^6)

If you don't know a token's address, ask the user. Do not guess token addresses.

Step 2: Find a Pool

Uniswap V3 pools are keyed by (tokenA, tokenB, fee). The fee tiers are:

FeeBasis PointsTypical Use
1000.01%Stablecoin pairs
5000.05%Stable/major pairs
30000.3%Most pairs
100001%Exotic/volatile pairs

Query the factory for each fee tier until you find a pool (non-zero address):

bash
# Try 500 first (most common for major pairs)
cast call <FACTORY> "getPool(address,address,uint24)(address)" <tokenIn> <tokenOut> 500 --rpc-url https://sepolia.base.org

# If zero, try 3000
cast call <FACTORY> "getPool(address,address,uint24)(address)" <tokenIn> <tokenOut> 3000 --rpc-url https://sepolia.base.org

# If zero, try 10000
cast call <FACTORY> "getPool(address,address,uint24)(address)" <tokenIn> <tokenOut> 10000 --rpc-url https://sepolia.base.org

# If zero, try 100
cast call <FACTORY> "getPool(address,address,uint24)(address)" <tokenIn> <tokenOut> 100 --rpc-url https://sepolia.base.org

A return value of 0x0000000000000000000000000000000000000000 means no pool exists at that fee tier. If no pool exists at any fee tier, tell the user there is no Uniswap V3 liquidity for this pair on this chain.

On testnets, liquidity may be very thin or nonexistent for many pairs. Common testnet pairs with liquidity: WETH/USDC.

Step 3: Check Pool Liquidity

Once you find a pool address, verify it has liquidity:

bash
cast call <pool-address> "liquidity()(uint128)" --rpc-url https://sepolia.base.org

If liquidity is 0, the pool exists but has no liquidity — the swap will fail. Tell the user and try the next fee tier.

Step 4: Get a Quote

Use QuoterV2 to simulate the swap and get the expected output amount. This is a read-only call — no gas needed.

bash
# For exact input (you know how much you're putting in):
cast call <QUOTER_V2> \
  "quoteExactInputSingle((address,address,uint256,uint24,uint160))(uint256,uint160,uint32,uint256)" \
  "(<tokenIn>,<tokenOut>,<amountIn>,<fee>,0)" \
  --rpc-url https://sepolia.base.org

The tuple parameter order is: (tokenIn, tokenOut, amountIn, fee, sqrtPriceLimitX96). Set sqrtPriceLimitX96 to 0 for no price limit.

The return values are: (amountOut, sqrtPriceX96After, initializedTicksCrossed, gasEstimate).

Convert amountOut to human-readable using the output token's decimals and show it to the user before executing. For example: "Swapping 0.001 WETH → expected ~2.34 USDC. Proceed?"

If the quote call reverts, the pool likely has insufficient liquidity for the requested amount. Try a smaller amount or a different fee tier.

Step 5: Check Balance and Allowance

Before executing, verify the wallet has enough of the input token:

bash
# Check tokenIn balance
cast call <tokenIn> "balanceOf(address)(uint256)" <wallet-address> --rpc-url https://sepolia.base.org

# Check current allowance for the SwapRouter
cast call <tokenIn> "allowance(address,address)(uint256)" <wallet-address> <SWAP_ROUTER> --rpc-url https://sepolia.base.org

If the balance is insufficient, tell the user. If the allowance is less than amountIn, you'll need to approve in the same batch (see Step 6).

Step 6: Construct and Execute the Swap
Case A: TokenIn is an ERC-20 (already have the token)

If allowance is sufficient, just swap:

bash
SWAP_DATA=$(cast calldata \
  "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))" \
  "(<tokenIn>,<tokenOut>,<fee>,<recipient>,<amountIn>,<amountOutMinimum>,0)")

keypo-wallet send --key <key-name> --to <SWAP_ROUTER> --data $SWAP_DATA

If allowance is insufficient, approve + swap in one batch:

bash
APPROVE_DATA=$(cast calldata "approve(address,uint256)" <SWAP_ROUTER> <amountIn>)

SWAP_DATA=$(cast calldata \
  "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))" \
  "(<tokenIn>,<tokenOut>,<fee>,<recipient>,<amountIn>,<amountOutMinimum>,0)")

echo "[
  {\"to\": \"<tokenIn>\", \"value\": \"0\", \"data\": \"$APPROVE_DATA\"},
  {\"to\": \"<SWAP_ROUTER>\", \"value\": \"0\", \"data\": \"$SWAP_DATA\"}
]" | keypo-wallet batch --key <key-name> --calls -
Case B: Swapping from native ETH

Native ETH must be wrapped to WETH first. Then approve + swap:

bash
DEPOSIT_DATA=$(cast calldata "deposit()")

APPROVE_DATA=$(cast calldata "approve(address,uint256)" <SWAP_ROUTER> <amountIn>)

SWAP_DATA=$(cast calldata \
  "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))" \
  "(<WETH>,<tokenOut>,<fee>,<recipient>,<amountIn>,<amountOutMinimum>,0)")

echo "[
  {\"to\": \"<WETH>\", \"value\": \"<amountIn>\", \"data\": \"$DEPOSIT_DATA\"},
  {\"to\": \"<WETH>\", \"value\": \"0\", \"data\": \"$APPROVE_DATA\"},
  {\"to\": \"<SWAP_ROUTER>\", \"value\": \"0\", \"data\": \"$SWAP_DATA\"}
]" | keypo-wallet batch --key <key-name> --calls -

The deposit() call wraps ETH → WETH. The value field on the deposit call must equal amountIn (in wei). All three calls execute atomically.

Case C: Swapping to native ETH

Swap tokenIn → WETH, then unwrap. Set the swap recipient to the wallet's own address, then unwrap:

bash
SWAP_DATA=$(cast calldata \
  "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))" \
  "(<tokenIn>,<WETH>,<fee>,<wallet-address>,<amountIn>,<amountOutMinimum>,0)")

WITHDRAW_DATA=$(cast calldata "withdraw(uint256)" <expectedWethOut>)

echo "[
  {\"to\": \"<tokenIn>\", \"value\": \"0\", \"data\": \"$APPROVE_DATA\"},
  {\"to\": \"<SWAP_ROUTER>\", \"value\": \"0\", \"data\": \"$SWAP_DATA\"},
  {\"to\": \"<WETH>\", \"value\": \"0\", \"data\": \"$WITHDRAW_DATA\"}
]" | keypo-wallet batch --key <key-name> --calls -
Step 7: Verify the Result

After the transaction succeeds, check the output token balance:

bash
keypo-wallet balance --key <key-name> --token <tokenOut>

Or for native ETH:

bash
keypo-wallet balance --key <key-name>

Show full SKILL.md (440 more words)Show less

exactInputSingle Parameters

The exactInputSingle function takes a tuple with these fields in order:

FieldTypeDescription
tokenInaddressInput token contract address
tokenOutaddressOutput token contract address
feeuint24Pool fee tier (100, 500, 3000, or 10000)
recipientaddressAddress to receive output tokens (usually the wallet itself)
amountInuint256Amount of input token (raw integer, adjusted for decimals)
amountOutMinimumuint256Minimum acceptable output (set to ~95-98% of quoted amount for slippage protection)
sqrtPriceLimitX96uint160Price limit — set to 0 for no limit

Note: The SwapRouter on Base Sepolia uses the V3 SwapRouter (not SwapRouter02). Its exactInputSingle does NOT include a deadline parameter in the tuple — the deadline is handled differently on this deployment. If you get encoding errors, check the router's ABI with cast interface.


Slippage Protection

Never set amountOutMinimum to 0 in production — this allows any output amount including near-zero (sandwich attack). Calculate a reasonable minimum:

bash
# 3% slippage tolerance on testnet
python3 -c "
quoted = <amountOut-from-step-4>
min_out = int(quoted * 0.97)
print(min_out)
"

On testnet, 3-5% slippage is reasonable due to thin liquidity. On mainnet, 0.5-1% is typical.


Multi-Hop Swaps

If no direct pool exists for your pair but both tokens have pools with a common intermediary (usually WETH), you can route through multiple pools using exactInput:

bash
# Example: TokenA → WETH → TokenB
# Path is encoded as: tokenA + fee1 + WETH + fee2 + tokenB (packed bytes)

# Encode the path
PATH=$(python3 -c "
tokenA = '<tokenA-address>'[2:]  # remove 0x
fee1 = '<fee1-hex>'  # e.g. '0001f4' for 500
weth = '<WETH-address>'[2:]
fee2 = '<fee2-hex>'
tokenB = '<tokenB-address>'[2:]
print('0x' + tokenA + fee1 + weth + fee2 + tokenB)
")

SWAP_DATA=$(cast calldata \
  "exactInput((bytes,address,uint256,uint256))" \
  "($PATH,<recipient>,<amountIn>,<amountOutMinimum>)")

Fee hex encoding: 100 → 000064, 500 → 0001f4, 3000 → 000bb8, 10000 → 002710.

Multi-hop is more complex. Only use it when no direct pool exists. Always try direct pools first.


Common Issues

"Pool not found" — No pool exists at any fee tier for this pair on this chain. On testnets, many pairs have no liquidity. Suggest the user try a different pair or check mainnet.

Quote reverts — The pool exists but doesn't have enough liquidity for the requested amount. Try a smaller amount.

Swap reverts with "STF" — "Safe Transfer From" failed. The approval didn't go through, or the wallet doesn't have enough tokens. Check allowance and balance.

Swap reverts with "TF" — "Transfer Failed" on output. Rare — usually means the output token has transfer restrictions.

Wrong decimals — Always call decimals() on both tokens. Getting this wrong sends the wrong amount (potentially 10^12x off).

"Too little received" — amountOutMinimum was set too high relative to actual pool price. This can happen if the quote is stale. Re-quote and use a slightly larger slippage tolerance.


Security Notes

  • Always show the user the expected output amount and get confirmation before executing swaps.
  • Never set amountOutMinimum to 0 except on testnets with trivial amounts.
  • Verify token addresses — do not guess or hallucinate addresses. Use known addresses from this skill or ask the user.
  • On testnets, pools may have extremely thin liquidity. Large swaps will have high slippage.
  • The approve amount should match amountIn exactly, not type(uint256).max, to limit exposure if the router contract is compromised.

© keypo-us, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/contracts/uniswap-v3 of keypo-us/keypo-cli.

Open the folder on GitHubat commit 7331b6f

Compare with similar skills

Uniswap V3 Swap next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Uniswap V3 Swap compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Uniswap V3 Swap this skillkeypo-us/keypo-cli182—~3.2kAutomated safety check: PassMIT
Trading Evmalsk1992/CloddsBot3k—~1.9kAutomated safety check: PassMIT
Deposit QrSuperior-Trade/superior-skills215—~1.1kAutomated safety check: PassMIT
Alchemy Agentic Gatewaymoonpay/skills113—~2.1kAutomated safety check: NotesMIT
Bridge Tokenscirclefin/skills155—~4.5kAutomated safety check: NotesApache-2.0
Payram Crypto PaymentsPayRam/payram-mcp158—~2kAutomated safety check: NotesNone

Similar skills

  • Trading Evm

    alsk1992/CloddsBot

    Trade tokens on EVM chains - Uniswap V3, 1inch on Ethereum, Arbitrum, Optimism, Base, Polygon

    3k GitHub stars~1.9k tokensUpdated 8 days ago
    Backend & APIsAuto-check passed
  • Deposit Qr

    Superior-Trade/superior-skills

    A skill your agent uses when a user needs a QR code or wallet payment URI to fund a Superior-managed EVM wallet on a specific chain before using Lighter, Polymarket, Hyperliquid, or other Superior…

    215 GitHub stars~1.1k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • A skill your agent uses when accessing Alchemy APIs for RPC calls, token balances, NFT metadata, asset transfers, transaction simulation, or Alchemy-specific features.

    113 GitHub stars~2.1k tokensUpdated 1 mo ago
    Backend & APIsAuto-check: notes
  • Bridge Tokens

    circlefin/skills

    Build browser or server token bridging across chains with Circle App Kit or standalone Bridge Kit.

    155 GitHub stars~4.5k tokensUpdated 2 days ago
    Backend & APIsAuto-check: notes
  • Payram Crypto Payments

    PayRam/payram-mcp

    Self-hosted crypto and stablecoin payment gateway. An agent skill from PayRam/payram-mcp.

    158 GitHub stars~2k tokensUpdated 3 days ago
    Backend & APIsAuto-check: notes
  • Okx Dapp Discovery

    internet-court/internet-court-skill

    Plugin router for 20 third-party DeFi protocols (Polymarket, Aave, Hyperliquid, PancakeSwap, Morpho, Raydium, Curve, Compound, Pendle, Lido, ether.fi, GMX, Kamino, Orca, Meteora, Clanker, pump.fun…

    6.6k GitHub starsUsed in 1 repo~6.9k tokens
    Backend & APIsAuto-check passed

More from keypo-us/keypo-cli

  • Checkout Purchase

    keypo-us/keypo-cli

    A skill your agent uses when the user asks to buy a product from the Shopify store.

    182 GitHub stars~880 tokensUpdated 6 mo ago
    Auto-check: notes
  • Keypo Shopping

    keypo-us/keypo-cli

    MUST LOAD for any shopping, buying, gift, or product request.

    182 GitHub stars~1.3k tokensUpdated 6 mo ago
    Auto-check passed
  • Keypo Signer

    keypo-us/keypo-cli

    A skill your agent uses when managing Secure Enclave signing keys or encrypted secrets.

    182 GitHub stars~3.6k tokensUpdated 6 mo ago
    Auto-check: notes
  • Keypo Wallet

    keypo-us/keypo-cli

    A skill your agent uses when interacting with keypo-wallet — checking wallet balances, listing wallets, sending transactions, or managing Secure Enclave signing keys.

    182 GitHub stars~2.7k tokensUpdated 6 mo ago
    Auto-check passed
  • Portfolio Tracker

    keypo-us/keypo-cli

    A skill your agent uses when the user asks about token balances, what tokens a wallet holds, or wants a complete portfolio overview including ERC-20 tokens.

    182 GitHub stars~2.7k tokensUpdated 6 mo ago
    Auto-check passed
  • Weth Base Sepolia

    keypo-us/keypo-cli

    Interact with Wrapped Ether (WETH) at 0x4200000000000000000000000000000000000006 on Base Sepolia.

    182 GitHub stars~1.5k tokensUpdated 6 mo ago
    Auto-check passed

Categories

Questions about Uniswap V3 Swap

What does Uniswap V3 Swap do?

A skill your agent uses when the user wants to swap tokens on Base Sepolia (or Base mainnet) using Uniswap V3. Uniswap V3 Swap is an agent skill from keypo-us/keypo-cli. Use when the user wants to swap tokens on Base Sepolia (or Base mainnet) using Uniswap V3.

When should I use Uniswap V3 Swap?

Uniswap V3 Swap fits situations like: the user wants to swap tokens on Base Sepolia (or Base mainnet) using Uniswap V3; the user says swap; exchange tokens; asks about Uniswap liquidity.

How do I install Uniswap V3 Swap in Claude Code?

Run `npx skills add keypo-us/keypo-cli --skill uniswap-v3-swap -a claude-code`. Or copy the skill folder (skills/contracts/uniswap-v3 in keypo-us/keypo-cli) into .claude/skills/uniswap-v3-swap in your project. Claude Code loads it when a task matches its description.

How do I install Uniswap V3 Swap in Codex?

Run `npx skills add keypo-us/keypo-cli --skill uniswap-v3-swap -a codex`. Or copy the skill folder (skills/contracts/uniswap-v3 in keypo-us/keypo-cli) into .agents/skills/uniswap-v3-swap in your project. Codex loads it when a task matches its description.

Can I use Uniswap V3 Swap in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add keypo-us/keypo-cli --skill uniswap-v3-swap -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/uniswap-v3-swap, .gemini/skills/uniswap-v3-swap, .github/skills/uniswap-v3-swap and .opencode/skills/uniswap-v3-swap in your project.

What does Uniswap V3 Swap need to run?

Going by SKILL.md and its folder, Uniswap V3 Swap needs the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Uniswap V3 Swap access the network?

SKILL.md names 1 domain. In commands or code: sepolia.base.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Uniswap V3 Swap safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Uniswap V3 Swap use?

Uniswap V3 Swap is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Uniswap V3 Swap use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Uniswap V3 Swap?

Skills that share tags, products or a category with Uniswap V3 Swap: Trading Evm (alsk1992/CloddsBot, 3k stars), Deposit Qr (Superior-Trade/superior-skills, 215 stars), Alchemy Agentic Gateway (moonpay/skills, 113 stars) and Bridge Tokens (circlefin/skills, 155 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Uniswap V3 Swap?

keypo-us (a GitHub organization) maintains it in keypo-us/keypo-cli, which has 182 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on April 2, 2026.

Source: keypo-us/keypo-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.