V4 DEX Add Liquidity
Add concentrated liquidity to Uniswap V4 pools by minting a position NFT. Supports native ETH (no WETH wrapping), custom price ranges, and hook contracts. Uses Permit2 for approvals. Returns position NFT token ID. Ideal for: V4 liquidity provision, native ETH pools, hook-enabled pools, advanced LP strategies.
Action du catalogue Sur chaîne EVM portefeuille Gaz envoi
Ajoutez de la liquidité concentrée aux pools Uniswap V4 en mintant un NFT de position. Prend en charge l'ETH natif (sans emballage WETH), des plages de prix personnalisées et des contrats hooks. Utilise Permit2 pour les approbations. Retourne l'ID du token NFT de position. Idéal pour : provision de liquidité V4, pools ETH natifs, pools activés par hooks, stratégies LP avancées.
Cette action peut nécessiter un connecteur de portefeuille, du gaz, un mouvement de tokens ou un effet secondaire externe. Testez avec une simulation ou un montant contrôlé avant de l'utiliser dans un workflow en production.
Au premier coup d'œil
| Champ | Valeur |
|---|---|
| ID de l'action | v4-add-liquidity |
| Catégorie | Sur chaîne EVM |
| Connecteur | wallet |
| Nécessite du gaz | Oui |
| Mouvement de fonds | send |
| Étiquettes | blockchain, evm, dex, liquidity, lp, amm, defi, v4, uniswap, nft |
Schéma de la charge utile
| Champ | Type | Requis | Description |
|---|---|---|---|
chainId | number | Oui | Chaîne |
currency0 | string | Oui | Adresse de la première devise. Utilisez 0x0000000000000000000000000000000000000000 pour l'ETH natif. Sera triée avec currency1 pour déterminer l'ordre réel. |
amount0Desired | string | Non | Montant désiré de currency0 à ajouter (en wei/unité la plus petite). Au moins l'un des amount0Desired ou amount1Desired doit être fourni. |
currency1 | string | Oui | Adresse de la seconde devise. Utilisez 0x0000000000000000000000000000000000000000 pour l'ETH natif. Sera triée avec currency0 pour déterminer l'ordre réel. |
amount1Desired | string | Non | Montant désiré de currency1 à ajouter (en wei/unité la plus petite). Au moins l'un des amount0Desired ou amount1Desired doit être fourni. |
fee | number | Oui | Niveau de frais du pool en centièmes de bip. Valeurs valides : 100 (0,01 %), 500 (0,05 %), 3000 (0,3 %), 10000 (1 %) |
tickSpacing | number | Non | Espacement des ticks pour le pool. Si non fourni, utilise la valeur par défaut pour le niveau de frais. |
hooks | string | Non | Adresse du contrat hook. Par défaut : 0x0000000000000000000000000000000000000000 (pas de hooks / pool vanilla) |
tickLower | number | Non | Tick inférieur de la position. Si non fourni, utilise la plage complète. Doit être un multiple de l'espacement des ticks. |
tickUpper | number | Non | Tick supérieur de la position. Si non fourni, utilise la plage complète. Doit être un multiple de l'espacement des ticks. |
slippageBps | number | Non | Tolérance au glissement en points de base (100 = 1 %). Par défaut : 50 (0,5 %) |
deadlineMinutes | number | Non | Délai d'attente de la transaction en minutes à partir de maintenant. Par défaut : 20 |
positionManagerAddress | string | Non | Adresse PositionManager personnalisée optionnelle. Si non fournie, utilise la valeur par défaut pour la chaîne. |
Schéma de résultat
| Champ | Type | Requis | Description |
|---|---|---|---|
status | string | Oui | - |
transactionHash | string | Oui | Le hachage de la transaction |
tokenId | string | Non | ID du token NFT de position |
liquidity | string | Non | Montant de liquidité minté |
tickLower | number | Non | Tick inférieur de la position |
tickUpper | number | Non | Tick supérieur de la position |
Exemples
json{ "type": "v4-add-liquidity", "payload": { "currency0": "example-currency0", "currency1": "example-currency1", "fee": 100, "chainId": 8453 }, "children": [], "connector": { "type": "wallet", "id": "conn_wallet" }}
bashcurl -X POST "https://api.b3os.org/v1/actions/v4-add-liquidity/test" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "inputs": { "currency0": "example-currency0", "currency1": "example-currency1", "fee": 100, "chainId": 8453 }}'
Les champs de charge utile peuvent utiliser des expressions de workflow telles que {{$trigger.body.amount}}, {{$nodes.fetch.result.price}}, et {{$props.asset}} lorsque la valeur doit provenir d'un déclencheur, d'un nœud précédent ou d'une propriété de workflow réutilisable.
