From 9e88eab76da5616b1183dfb7e14c084e1385f2e7 Mon Sep 17 00:00:00 2001 From: Nick Koutrelakos Date: Wed, 1 Apr 2026 09:51:02 -0700 Subject: [PATCH 1/3] [new-plugin] uniswap-viem-integration v1.0.0 --- submissions/uniswap-viem-integration/LICENSE | 21 +++++ .../uniswap-viem-integration/README.md | 24 ++++++ .../uniswap-viem-integration/plugin.yaml | 23 ++++++ .../skills/uniswap-viem-integration/SKILL.md | 78 +++++++++++++++++++ 4 files changed, 146 insertions(+) create mode 100644 submissions/uniswap-viem-integration/LICENSE create mode 100644 submissions/uniswap-viem-integration/README.md create mode 100644 submissions/uniswap-viem-integration/plugin.yaml create mode 100644 submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md diff --git a/submissions/uniswap-viem-integration/LICENSE b/submissions/uniswap-viem-integration/LICENSE new file mode 100644 index 0000000..fb60be1 --- /dev/null +++ b/submissions/uniswap-viem-integration/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Uniswap Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/submissions/uniswap-viem-integration/README.md b/submissions/uniswap-viem-integration/README.md new file mode 100644 index 0000000..0483c37 --- /dev/null +++ b/submissions/uniswap-viem-integration/README.md @@ -0,0 +1,24 @@ +# uniswap-viem-integration + +Integrate EVM blockchains using viem and wagmi for TypeScript and JavaScript applications + +## Source + +This skill is maintained by Uniswap Labs in the [uniswap-ai](https://github.com/uniswap/uniswap-ai) monorepo. + +The canonical source is at [`packages/plugins/uniswap-viem/skills/viem-integration/`](https://github.com/uniswap/uniswap-ai/tree/main/packages/plugins/uniswap-viem/skills/viem-integration). + +### What It Does + +- Guides AI agents through setting up viem clients, accounts, and chain configurations +- Covers reading blockchain data, sending transactions, and smart contract interactions +- Provides patterns for wallet integration using wagmi + +### Related Skills + +- **uniswap-swap-integration**: Build swap functionality using viem as the transport layer +- **uniswap-v4-security-foundations**: Security patterns for v4 hook smart contracts + +## License + +MIT diff --git a/submissions/uniswap-viem-integration/plugin.yaml b/submissions/uniswap-viem-integration/plugin.yaml new file mode 100644 index 0000000..fbec26c --- /dev/null +++ b/submissions/uniswap-viem-integration/plugin.yaml @@ -0,0 +1,23 @@ +schema_version: 1 +name: uniswap-viem-integration +version: "1.0.0" +description: "Integrate EVM blockchains using viem and wagmi for TypeScript and JavaScript applications" +author: + name: "Uniswap Labs" + github: "wkoutre" +license: MIT +category: utility +tags: + - viem + - wagmi + - ethereum + - evm + - blockchain + - typescript + - smart-contracts + +components: + skill: + dir: skills/uniswap-viem-integration + +api_calls: [] diff --git a/submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md b/submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md new file mode 100644 index 0000000..241498c --- /dev/null +++ b/submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md @@ -0,0 +1,78 @@ +--- +name: uniswap-viem-integration +description: "Integrate EVM blockchains using viem and wagmi for TypeScript/JavaScript applications" +version: "1.0.0" +author: "Uniswap Labs" +tags: + - viem + - wagmi + - ethereum + - evm +--- + +# Viem Integration + +Integrate EVM blockchains using viem for TypeScript/JavaScript applications. + +## Overview + +This skill provides comprehensive guidance for using viem (low-level EVM client) and wagmi (React hooks for Ethereum) to read blockchain data, send transactions, interact with smart contracts, and manage wallets. + +## Pre-flight Checks + +1. Node.js >= 18 installed +2. A TypeScript/JavaScript project initialized +3. An Ethereum RPC endpoint (Alchemy, Infura, or public) + +## Commands + +### Install Dependencies + +```bash +npm install viem +# For React apps: +npm install wagmi viem @tanstack/react-query +``` + +### Create a Client + +```typescript +import { createPublicClient, http } from "viem"; +import { mainnet } from "viem/chains"; + +const client = createPublicClient({ + chain: mainnet, + transport: http(), +}); +``` + +### Read Contract Data + +```typescript +const balance = await client.readContract({ + address: "0x...", + abi: erc20Abi, + functionName: "balanceOf", + args: ["0x..."], +}); +``` + +## Full Skill + +For the complete guide with wallet integration, transaction signing, multi-chain patterns, and wagmi React hooks: + +``` +npx skills add Uniswap/uniswap-ai +``` + +## Error Handling + +| Error | Cause | Resolution | +|-------|-------|------------| +| "Could not detect network" | Invalid RPC URL | Verify the RPC endpoint is correct and reachable | +| "Insufficient funds" | Not enough ETH for gas | Fund the wallet with native gas token | + +## Skill Routing + +- For Uniswap swap integration -> use `uniswap-swap-integration` +- For v4 hook security -> use `uniswap-v4-security-foundations` From 39893a0924aed2a5dc90844609f5a77e5f4276b3 Mon Sep 17 00:00:00 2001 From: Nick Koutrelakos Date: Wed, 1 Apr 2026 09:55:40 -0700 Subject: [PATCH 2/3] simplify SKILL.md to minimal stub pointing to canonical source --- .../skills/uniswap-viem-integration/SKILL.md | 71 ++----------------- 1 file changed, 6 insertions(+), 65 deletions(-) diff --git a/submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md b/submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md index 241498c..6d2ea78 100644 --- a/submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md +++ b/submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md @@ -1,78 +1,19 @@ --- name: uniswap-viem-integration -description: "Integrate EVM blockchains using viem and wagmi for TypeScript/JavaScript applications" +description: "Integrate EVM blockchains using viem and wagmi for TypeScript and JavaScript applications" version: "1.0.0" author: "Uniswap Labs" tags: - - viem - - wagmi - - ethereum - - evm + - uniswap + - defi --- -# Viem Integration +# uniswap-viem-integration -Integrate EVM blockchains using viem for TypeScript/JavaScript applications. - -## Overview - -This skill provides comprehensive guidance for using viem (low-level EVM client) and wagmi (React hooks for Ethereum) to read blockchain data, send transactions, interact with smart contracts, and manage wallets. - -## Pre-flight Checks - -1. Node.js >= 18 installed -2. A TypeScript/JavaScript project initialized -3. An Ethereum RPC endpoint (Alchemy, Infura, or public) - -## Commands - -### Install Dependencies - -```bash -npm install viem -# For React apps: -npm install wagmi viem @tanstack/react-query -``` - -### Create a Client - -```typescript -import { createPublicClient, http } from "viem"; -import { mainnet } from "viem/chains"; - -const client = createPublicClient({ - chain: mainnet, - transport: http(), -}); -``` - -### Read Contract Data - -```typescript -const balance = await client.readContract({ - address: "0x...", - abi: erc20Abi, - functionName: "balanceOf", - args: ["0x..."], -}); -``` - -## Full Skill - -For the complete guide with wallet integration, transaction signing, multi-chain patterns, and wagmi React hooks: +This skill is maintained by Uniswap Labs. Install the full version: ``` npx skills add Uniswap/uniswap-ai ``` -## Error Handling - -| Error | Cause | Resolution | -|-------|-------|------------| -| "Could not detect network" | Invalid RPC URL | Verify the RPC endpoint is correct and reachable | -| "Insufficient funds" | Not enough ETH for gas | Fund the wallet with native gas token | - -## Skill Routing - -- For Uniswap swap integration -> use `uniswap-swap-integration` -- For v4 hook security -> use `uniswap-v4-security-foundations` +Source: [uniswap-ai/packages/plugins/uniswap-viem/skills/viem-integration](https://github.com/uniswap/uniswap-ai/tree/main/packages/plugins/uniswap-viem/skills/viem-integration) From c4bf2dfae357e66697f504b66af8c1a02cc3f98e Mon Sep 17 00:00:00 2001 From: Nick Koutrelakos Date: Wed, 1 Apr 2026 10:01:51 -0700 Subject: [PATCH 3/3] add per-plugin install command to stub --- .../skills/uniswap-viem-integration/SKILL.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md b/submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md index 6d2ea78..9cc1d41 100644 --- a/submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md +++ b/submissions/uniswap-viem-integration/skills/uniswap-viem-integration/SKILL.md @@ -16,4 +16,10 @@ This skill is maintained by Uniswap Labs. Install the full version: npx skills add Uniswap/uniswap-ai ``` +Or install just this plugin: + +``` +claude plugin add @uniswap/uniswap-viem +``` + Source: [uniswap-ai/packages/plugins/uniswap-viem/skills/viem-integration](https://github.com/uniswap/uniswap-ai/tree/main/packages/plugins/uniswap-viem/skills/viem-integration)