> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# protocols: Per-protocol subpath shape (uniswap-v3)

> Per-protocol subpath shape (uniswap-v3): 9 exports of the protocols module of @eco-incorp/sauce, including protocols/uniswap-v3: protocolInfo, protocols/uniswap-v3: deployments, protocols/uniswap-v3: UniswapV3SwapRouterABI, protocols/uniswap-v3: UniswapV3NonfungiblePositionManagerABI, protocols/uniswap-v3: UniswapV3FactoryABI, protocols/uniswap-v3: UniswapV3QuoterV2ABI.

`listProtocols()`, `getProtocol(slug)` and the category and chain filters read the protocol registry. Each protocol's ABIs and metadata live on `@eco-incorp/sauce/protocols/<slug>`; the `uniswap-v3` subpath is shown as the representative shape. `@eco-incorp/sauce/skills` loads the Markdown skill files shipped per protocol.

## Protocol slugs (129)

`aave-v2`, `aave-v3`, `abracadabra`, `across`, `aerodrome`, `aevo`, `alchemix`, `ambient`, `arbitrum-bridge`, `arrakis`, `axelar`, `balancer-v2`, `base-bridge`, `baseswap`, `beefy`, `benqi`, `camelot`, `cbeth`, `cctp`, `celer`, `chainlink`, `chainlink-ccip`, `compound-v2`, `compound-v3`, `connext`, `convex`, `cowswap`, `crvusd`, `curve`, `debridge`, `dodo`, `eigenlayer`, `ens`, `erc20`, `erc3156`, `erc4626`, `ethena`, `etherfi`, `euler-v2`, `fenix`, `fluid`, `frax`, `frax-ether`, `gains-network`, `gamma`, `gelato`, `gho`, `gmx-v1`, `gmx-v2`, `harvest`, `hegic`, `hop`, `hyperlane`, `instadapp`, `kelp`, `kim`, `kyberswap`, `kyberswap-aggregator`, `layerbank`, `layerzero`, `level-finance`, `lido`, `lifi`, `linea-bridge`, `liquity-v1`, `liquity-v2`, `lynex`, `maker`, `mantle-meth`, `maverick`, `moonwell`, `morpho-blue`, `mux-protocol`, `olympus`, `oneinch`, `openocean`, `optimism-bridge`, `opyn`, `pancakeswap-v2`, `pancakeswap-v3`, `paraswap`, `pendle`, `permit2`, `perpetual-protocol`, `polygon-bridge`, `premia`, `puffer`, `pyth`, `quickswap`, `radiant`, `ramses`, `reflexer`, `renzo`, `rocket-pool`, `sablier`, `safe`, `scroll-bridge`, `seamless`, `seaport`, `silo`, `socket`, `sommelier`, `spark`, `spookyswap`, `squid`, `stader`, `stargate`, `superfluid`, `sushiswap-v2`, `swell`, `synapse`, `syncswap`, `synthetix-v3`, `thales`, `thena`, `thruster`, `tokemak`, `trader-joe`, `uniswap-v2`, `uniswap-v3`, `uniswap-v4`, `velodrome`, `venus`, `vertex`, `wormhole`, `yearn-v3`, `zerolend`, `zerox`, `zksync-bridge`

This page covers `sdk/dist/protocols/uniswap-v3/info.d.ts`, `sdk/dist/protocols/uniswap-v3/addresses.d.ts`, `sdk/dist/protocols/uniswap-v3/abis.d.ts`, `sdk/dist/protocols/uniswap-v3/functions.d.ts`.

<Note>
  Generated from the type declarations shipped in `@eco-incorp/sauce` 0.99.4. Each entry shows the package authors' JSDoc and declaration for this SDK version. For runtime compatibility and deployed addresses, see [architecture and deployments](/programmable-transactions/sauce/architecture-and-deployments).
</Note>

### `protocols/uniswap-v3: protocolInfo`

*Variable* · `sdk/dist/protocols/uniswap-v3/info.d.ts`

```typescript theme={null}
protocolInfo: ProtocolInfo
```

### `protocols/uniswap-v3: deployments`

*Variable* · `sdk/dist/protocols/uniswap-v3/addresses.d.ts`

```typescript theme={null}
deployments: ChainDeployment[]
```

### `protocols/uniswap-v3: UniswapV3SwapRouterABI`

*Variable* · `sdk/dist/protocols/uniswap-v3/abis.d.ts`

```typescript theme={null}
UniswapV3SwapRouterABI: readonly [
    {
        readonly name: "exactInputSingle";
        readonly type: "function";
        readonly stateMutability: "payable";
        readonly inputs: readonly [
            {
                readonly name: "params";
                readonly type: "tuple";
                readonly components: readonly [
                    {
                        readonly name: "tokenIn";
                        readonly type: "address";
                    },
                    {
                        readonly name: "tokenOut";
                        readonly type: "address";
                    },
                    {
                        readonly name: "fee";
                        readonly type: "uint32";
                    },
                    {
                        readonly name: "recipient";
                        readonly type: "address";
                    },
                    {
                        readonly name: "deadline";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amountIn";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amountOutMinimum";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "sqrtPriceLimitX96";
                        readonly type: "uint160";
                    }
                ];
            }
        ];
        readonly outputs: readonly [
            {
                readonly name: "amountOut";
                readonly type: "uint256";
            }
        ];
    },
    {
        readonly name: "exactInput";
        readonly type: "function";
        readonly stateMutability: "payable";
        readonly inputs: readonly [
            {
                readonly name: "params";
                readonly type: "tuple";
                readonly components: readonly [
                    {
                        readonly name: "path";
                        readonly type: "bytes";
                    },
                    {
                        readonly name: "recipient";
                        readonly type: "address";
                    },
                    {
                        readonly name: "deadline";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amountIn";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amountOutMinimum";
                        readonly type: "uint256";
                    }
                ];
            }
        ];
        readonly outputs: readonly [
            {
                readonly name: "amountOut";
                readonly type: "uint256";
            }
        ];
    },
    {
        readonly name: "exactOutputSingle";
        readonly type: "function";
        readonly stateMutability: "payable";
        readonly inputs: readonly [
            {
                readonly name: "params";
                readonly type: "tuple";
                readonly components: readonly [
                    {
                        readonly name: "tokenIn";
                        readonly type: "address";
                    },
                    {
                        readonly name: "tokenOut";
                        readonly type: "address";
                    },
                    {
                        readonly name: "fee";
                        readonly type: "uint32";
                    },
                    {
                        readonly name: "recipient";
                        readonly type: "address";
                    },
                    {
                        readonly name: "deadline";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amountOut";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amountInMaximum";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "sqrtPriceLimitX96";
                        readonly type: "uint160";
                    }
                ];
            }
        ];
        readonly outputs: readonly [
            {
                readonly name: "amountIn";
                readonly type: "uint256";
            }
        ];
    },
    {
        readonly name: "exactOutput";
        readonly type: "function";
        readonly stateMutability: "payable";
        readonly inputs: readonly [
            {
                readonly name: "params";
                readonly type: "tuple";
                readonly components: readonly [
                    {
                        readonly name: "path";
                        readonly type: "bytes";
                    },
                    {
                        readonly name: "recipient";
                        readonly type: "address";
                    },
                    {
                        readonly name: "deadline";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amountOut";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amountInMaximum";
                        readonly type: "uint256";
                    }
                ];
            }
        ];
        readonly outputs: readonly [
            {
                readonly name: "amountIn";
                readonly type: "uint256";
            }
        ];
    }
]
```

### `protocols/uniswap-v3: UniswapV3NonfungiblePositionManagerABI`

*Variable* · `sdk/dist/protocols/uniswap-v3/abis.d.ts`

```typescript theme={null}
UniswapV3NonfungiblePositionManagerABI: readonly [
    {
        readonly name: "mint";
        readonly type: "function";
        readonly stateMutability: "payable";
        readonly inputs: readonly [
            {
                readonly name: "params";
                readonly type: "tuple";
                readonly components: readonly [
                    {
                        readonly name: "token0";
                        readonly type: "address";
                    },
                    {
                        readonly name: "token1";
                        readonly type: "address";
                    },
                    {
                        readonly name: "fee";
                        readonly type: "uint32";
                    },
                    {
                        readonly name: "tickLower";
                        readonly type: "uint32";
                    },
                    {
                        readonly name: "tickUpper";
                        readonly type: "uint32";
                    },
                    {
                        readonly name: "amount0Desired";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amount1Desired";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amount0Min";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amount1Min";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "recipient";
                        readonly type: "address";
                    },
                    {
                        readonly name: "deadline";
                        readonly type: "uint256";
                    }
                ];
            }
        ];
        readonly outputs: readonly [
            {
                readonly name: "tokenId";
                readonly type: "uint256";
            },
            {
                readonly name: "liquidity";
                readonly type: "uint128";
            },
            {
                readonly name: "amount0";
                readonly type: "uint256";
            },
            {
                readonly name: "amount1";
                readonly type: "uint256";
            }
        ];
    },
    {
        readonly name: "increaseLiquidity";
        readonly type: "function";
        readonly stateMutability: "payable";
        readonly inputs: readonly [
            {
                readonly name: "params";
                readonly type: "tuple";
                readonly components: readonly [
                    {
                        readonly name: "tokenId";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amount0Desired";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amount1Desired";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amount0Min";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amount1Min";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "deadline";
                        readonly type: "uint256";
                    }
                ];
            }
        ];
        readonly outputs: readonly [
            {
                readonly name: "liquidity";
                readonly type: "uint128";
            },
            {
                readonly name: "amount0";
                readonly type: "uint256";
            },
            {
                readonly name: "amount1";
                readonly type: "uint256";
            }
        ];
    },
    {
        readonly name: "decreaseLiquidity";
        readonly type: "function";
        readonly stateMutability: "payable";
        readonly inputs: readonly [
            {
                readonly name: "params";
                readonly type: "tuple";
                readonly components: readonly [
                    {
                        readonly name: "tokenId";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "liquidity";
                        readonly type: "uint128";
                    },
                    {
                        readonly name: "amount0Min";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "amount1Min";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "deadline";
                        readonly type: "uint256";
                    }
                ];
            }
        ];
        readonly outputs: readonly [
            {
                readonly name: "amount0";
                readonly type: "uint256";
            },
            {
                readonly name: "amount1";
                readonly type: "uint256";
            }
        ];
    },
    {
        readonly name: "collect";
        readonly type: "function";
        readonly stateMutability: "payable";
        readonly inputs: readonly [
            {
                readonly name: "params";
                readonly type: "tuple";
                readonly components: readonly [
                    {
                        readonly name: "tokenId";
                        readonly type: "uint256";
                    },
                    {
                   
/* …truncated… */
```

### `protocols/uniswap-v3: UniswapV3FactoryABI`

*Variable* · `sdk/dist/protocols/uniswap-v3/abis.d.ts`

```typescript theme={null}
UniswapV3FactoryABI: readonly [
    {
        readonly name: "getPool";
        readonly type: "function";
        readonly stateMutability: "view";
        readonly inputs: readonly [
            {
                readonly name: "tokenA";
                readonly type: "address";
            },
            {
                readonly name: "tokenB";
                readonly type: "address";
            },
            {
                readonly name: "fee";
                readonly type: "uint32";
            }
        ];
        readonly outputs: readonly [
            {
                readonly name: "pool";
                readonly type: "address";
            }
        ];
    },
    {
        readonly name: "createPool";
        readonly type: "function";
        readonly stateMutability: "nonpayable";
        readonly inputs: readonly [
            {
                readonly name: "tokenA";
                readonly type: "address";
            },
            {
                readonly name: "tokenB";
                readonly type: "address";
            },
            {
                readonly name: "fee";
                readonly type: "uint32";
            }
        ];
        readonly outputs: readonly [
            {
                readonly name: "pool";
                readonly type: "address";
            }
        ];
    }
]
```

### `protocols/uniswap-v3: UniswapV3QuoterV2ABI`

*Variable* · `sdk/dist/protocols/uniswap-v3/abis.d.ts`

```typescript theme={null}
UniswapV3QuoterV2ABI: readonly [
    {
        readonly name: "quoteExactInputSingle";
        readonly type: "function";
        readonly stateMutability: "nonpayable";
        readonly inputs: readonly [
            {
                readonly name: "params";
                readonly type: "tuple";
                readonly components: readonly [
                    {
                        readonly name: "tokenIn";
                        readonly type: "address";
                    },
                    {
                        readonly name: "tokenOut";
                        readonly type: "address";
                    },
                    {
                        readonly name: "amountIn";
                        readonly type: "uint256";
                    },
                    {
                        readonly name: "fee";
                        readonly type: "uint32";
                    },
                    {
                        readonly name: "sqrtPriceLimitX96";
                        readonly type: "uint160";
                    }
                ];
            }
        ];
        readonly outputs: readonly [
            {
                readonly name: "amountOut";
                readonly type: "uint256";
            },
            {
                readonly name: "sqrtPriceX96After";
                readonly type: "uint160";
            },
            {
                readonly name: "initializedTicksCrossed";
                readonly type: "uint32";
            },
            {
                readonly name: "gasEstimate";
                readonly type: "uint256";
            }
        ];
    }
]
```

### `protocols/uniswap-v3: swap`

*Variable* · `sdk/dist/protocols/uniswap-v3/functions.d.ts`

```typescript theme={null}
swap = "\nimport { UniswapV3SwapRouterABI as ISwapRouter } from \"./abis\";\n\nfunction main(routerAddress: Address, tokenIn: Address, tokenOut: Address, fee: Uint256, amountIn: Uint256, amountOutMin: Uint256, recipient: Address): Uint256 {\n  const router = ISwapRouter.at(routerAddress);\n  return router.exactInputSingle({tokenIn: tokenIn, tokenOut: tokenOut, fee: fee, recipient: recipient, deadline: 99999999999, amountIn: amountIn, amountOutMinimum: amountOutMin, sqrtPriceLimitX96: 0});\n}\n"
```

### `protocols/uniswap-v3: addLiquidity`

*Variable* · `sdk/dist/protocols/uniswap-v3/functions.d.ts`

```typescript theme={null}
addLiquidity = "\nimport { UniswapV3NonfungiblePositionManagerABI as INonfungiblePositionManager } from \"./abis\";\n\nfunction main(nfpmAddress: Address, token0: Address, token1: Address, fee: Uint256, tickLower: Uint256, tickUpper: Uint256, amount0Desired: Uint256, amount1Desired: Uint256, amount0Min: Uint256, amount1Min: Uint256, recipient: Address): { tokenId: Uint256, liquidity: Uint256, amount0: Uint256, amount1: Uint256 } {\n  const nfpm = INonfungiblePositionManager.at(nfpmAddress);\n  return nfpm.mint({token0: token0, token1: token1, fee: fee, tickLower: tickLower, tickUpper: tickUpper, amount0Desired: amount0Desired, amount1Desired: amount1Desired, amount0Min: amount0Min, amount1Min: amount1Min, recipient: recipient, deadline: 99999999999});\n}\n"
```

### `protocols/uniswap-v3: removeLiquidity`

*Variable* · `sdk/dist/protocols/uniswap-v3/functions.d.ts`

```typescript theme={null}
removeLiquidity = "\nimport { UniswapV3NonfungiblePositionManagerABI as INonfungiblePositionManager } from \"./abis\";\n\nfunction main(nfpmAddress: Address, tokenId: Uint256, liquidity: Uint256, amount0Min: Uint256, amount1Min: Uint256): { amount0: Uint256, amount1: Uint256 } {\n  const nfpm = INonfungiblePositionManager.at(nfpmAddress);\n  return nfpm.decreaseLiquidity({tokenId: tokenId, liquidity: liquidity, amount0Min: amount0Min, amount1Min: amount1Min, deadline: 99999999999});\n}\n"
```
