Learn
Uniswap v3

Uniswap v3

https://app.uniswap.org/ (opens in a new tab)

Deployments

NameAddress
PositionsNFT0xC36442b4a4522E871399CD717aBDD847Ab11FE88 (opens in a new tab)

Action: deposit

Parameters

NameTypeDescription
targetsstring[] (optional)NftId position NFT Id
tokensstring[] (optional)Token symbol | Token address
feesstring[] (optional)Fee fee

If targets is unspecified tokens must be passed. New positions in any pair of these tokens can be minted. Existing positions in any pair of these tokens can be managed.

⚠️

If tokens is unspecified, minting of new positions won't be allowed.

⚠️

If the avatar has approved the Uniswap v3 Positions NFT contract to spend tokens other than the ones specified in tokens, the role will be able to increase any existing positions' liquidity in these tokens as well.

TARGET below refers to the ERC-721 token id (NFT Id) of each element given in targets.

TARGET_TOKEN below refers to the ERC-20 token address of each element given in targets.

TOKEN below refers to the ERC-20 token address of each element given in tokens.

FEE below refers to the fee percentage of each element given in fees.

TARGET_TOKEN · approve

Approve PositionsNFT to spend TARGET_TOKEN tokens on behalf of the avatar.

  • Contract: TARGET_TOKEN

  • Function: approve(address,uint256)

    ParameterConstraint
    spenderequal to PositionsNFT
    amount-

TOKEN · approve

Approve PositionsNFT to spend TOKEN tokens on behalf of the avatar.

  • Contract: TOKEN

  • Function: approve(address,uint256)

    ParameterConstraint
    spenderequal to PositionsNFT
    amount-

mint · PositionsNFT

Deposit TOKEN tokens to the corresponding Uniswap v3 pool and receive an ERC-721 token (NFT) representing the newly minted liquidity position.

  • Contract: PositionsNFT

  • Function: mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256)) Ξ allow sending ETH

    ParameterConstraint
    params.token0equal to TOKEN
    params.token1equal to TOKEN
    params.feeequal to FEE
    params.tickLower-
    params.tickUpper-
    params.amount0Desired-
    params.amount1Desired-
    params.amount0Min-
    params.amount1Min-
    params.deadline-

increaseLiquidity · PositionsNFT

Increase the liquidity in a NFT position by adding the desired amounts of token0 and token1.

  • Contract: PositionsNFT

  • Function: increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256)) Ξ allow sending ETH

    ParameterConstraint
    params.tokenIdequal to TARGET
    params.amount0Desired-
    params.amount1Desired-
    params.amount0Min-
    params.amount1Min-
    params.deadline-

If targets is not specified then all positions owned by the avatar will be considered. Ownership is checked dynamically at condition evaluation time through the AvatarIsOwnerOfERC721 (opens in a new tab) custom condition applied to params.tokenId.

decreaseLiquidity · PositionsNFT

Decrease the liquidity in a NFT position by removing the the desired liquidity amount.

  • Contract: PositionsNFT

  • Function: decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))

    ParameterConstraint
    params.tokenIdequal to TARGET
    params.liquidity-
    params.amount0Min-
    params.amount1Min-
    params.deadline-

collect · PositionsNFT

Collect accumulated fees from a specific NFT position.

  • Contract: PositionsNFT

  • Function: collect((uint256,address,uint128,uint128))

    ParameterConstraint
    params.tokenIdequal to TARGET
    params.recipientequal to AVATAR
    params.amount0Max-
    params.amount1Max-

If WETH is involved:

collect · PositionsNFT

Collect accumulated fees from a specific NFT position.

  • Contract: PositionsNFT

  • Function: collect((uint256,address,uint128,uint128))

    ParameterConstraint
    params.tokenIdequal to TARGET
    params.recipientequal to 0x0000000000000000000000000000000000000000
    params.amount0Max-
    params.amount1Max-

refundETH · PositionsNFT

Refunds the unused ETH to the sender address.

  • Contract: PositionsNFT

  • Function: refundETH()

    ParameterConstraint
    N/AN/A

unwrapWETH9 · PositionsNFT

Unwraps a specified amount of WETH and transfers the corresponding ETH to the designated recipient address.

  • Contract: PositionsNFT

  • Function: unwrapWETH9(uint256,address)

    ParameterConstraint
    amountMinimum-
    recipientequal to AVATAR

sweepToken · PositionsNFT

Transfers the specified token amount from the PositionsNFT contract balance to the provided recipient address.

  • Contract: PositionsNFT

  • Function: sweepToken(address,uint256,address)

    ParameterConstraint
    token-
    amountMinimum-
    recipientequal to AVATAR