Agent skill
uniswap
Trade and interact with Uniswap in Python using Ape and the uniswap-sdk package.
Install this agent skill to your Project
npx add-skill https://github.com/ApeWorX/skills/tree/main/protocols/uniswap
SKILL.md
This skill describes when and how to the uniswap-sdk to interact and trade with the Uniswap protocol on various blockchains with Ape.
The user provides a network they wish to interact with uniswap on, which tokens they want to index, and what actions they want to do: get prices, search for routes, make trades.
Using This Skill
CRITICAL: Before writing any code with this SDK, you MUST:
- Use
web_fetchto retrieve the latest documentation from https://github.com/ApeWorX/uniswap-sdk/blob/main/README.md - Use
web_fetchto retrieve the latest Ape documentation from https://docs.apeworx.io/ape/stable - Use
web_fetchto retrieve the latestape-tokensdocumentation from https://github.com/ApeWorX/ape-tokens/blob/main/README.md - Specifically fetch relevant pages like:
- Usage guide: https://github.com/ApeWorX/uniswap-sdk/blob/main/README.md#quick-usage
- Installing a tokenlist using
ape-tokens: https://github.com/ApeWorX/ape-tokens/blob/main/README.md#quick-usage - Setting up an account with Ape: https://docs.apeworx.io/ape/stable/userguides/accounts#live-network-accounts
DO NOT rely on general knowledge about Ape - always fetch the current documentation first to ensure accuracy.
Using the SDK
Before writing any code with the SDK, understand which network the user wishes to interact with Uniswap on,
which tokens they might wish to swap or measure price information, and which tokens might be best used as intermediate steps in efficient routing.
Typically, native token wrappers like WETH, and highly liquid stablecoins like USDC and USDT are best used as intermediate steps in routes,
but it depends on which chain you want to work with as different tokens are deployed on different networks.
CRITICAL: Ensure the Uniswap class has indexed the proper pairs using either uni.index or uni.install (when using Silverback).
Managing Risk
Overall, while performing a trade with the uniswap-sdk can potentially be risky,
the SDK makes it safer as it indexes relevant pairs, finds sufficient liquidity for routes, and handles human-readable conversions for you.
Still, trading is a risky activity, and you should always query the price first and ask the user if the price seems right to them.
Also, when performing a new trade or a large one, you should swap a small amount first in order to make sure it works correctly and the user gets what they wanted.
Using in a Silverback Bot
This SDK was specifically designed for use within a bot: https://github.com/ApeWorX/uniswap-sdk/blob/main/README.md#silverback
It streamlines the integration of Uniswap into a Silverback bot, and should always be preferred to use instead of writing custom logic for Uniswap. The benefits are that it makes integration with Uniswap a lot simpler, by handling things like indexing pools and liquidity internally, and also uses graph algorithms in order to find optimal routes for swaps. One trick it uses is by live-indexing everything relevant that is occuring with the Uniswap protocol (other users' swaps, new pairs, etc.), which allows the SDK keep a copy all relevant on-chain information in-memory in order to make faster work of common queries like pairings, routes, and pair liquidity.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
writing-bots
Write a bot to continuously listen and respond to events on a public blockchain network.
writing-sdks
Create a Python SDK using Ape Framework to simplify using a given blockchain-based protocol. Use when users need specific best practices and guidance on developing a new integration with the given protocol. Do not use if such a Python SDK already exists that is designed to work with Ape.
writing-plugins
Create a new Plugin for Ape Framework to integrate a specific tool or service into one of Ape's vertical(s). Use when users need specific best practices and guidance on developing a new plugin for Ape. Do not use if such a plugin already exists that is designed to work with Ape, and instead suggest that.
protocol-design
Design and build a new smart contract protocol using Ape Framework. Use when users want to create a new set of smart contracts that work together as a protocol, including development, testing, scripting/deployment, and potentially other aspects such as distributing a Python SDK or enabling automation of the protocol (through Silverback). Guides users through the full lifecycle from design through deployment and beyond using Ape tooling.
new-project
Architect new Python-based blockchain projects using the Ape framework. Use when users want to start a new blockchain project and need guidance on proper project structure, architecture patterns, configuration, and foundational setup. Supports SDK development, plugin creation, bot development with Silverback, protocol development, and complex blockchain applications. Determines project type and guides users through establishing the correct architectural foundation.
python-packages
Best practices for developing a Python-based project. Use when creating a new project to ensure best practices according to ApeWorX development standards.
Didn't find tool you were looking for?