feat(amm): manage_amm tool + Meteora Launch LP agent - #192
Open
fengtality wants to merge 2 commits into
Open
Conversation
manage_amm — a direct, chain- & DEX-agnostic AMM tool (Meteora DAMM v2 / Raydium CPMM / Uniswap V2) over client.gateway_amm: pool_info, position_info, positions_owned, quote_swap, execute_swap, quote_liquidity, add_liquidity, remove_liquidity, create_pool. Position-addressed for Meteora (remove requires position_address, add optional = new position); progressive-disclosure guide. Adds AMMRequest (schemas), tools/gateway_amm.py, guides/gateway_amm.md, format_amm_result, registration in server.py, and manage_amm to the condor assistant prose. Meteora Launch LP agent (agents/meteora_launch_lp) — early LP on tokens graduating from launchpads (EasyA) into Meteora DAMM v2: - routines/easya_graduation_monitor.py: detect graduations off the Meteora data API via the EASY vanity mint-suffix (no launchpad API needed) - routines/launch_safety_check.py: objective gates (mint/freeze authority via RPC, top-holder concentration, LP lock, verified) -> PASS/FAIL - routines/damm_v2_scanner.py: fee-yield harvest on established pools - skills/launch_safety_check + strategies/launch_lp_operator: detect -> gate -> enter -> monitor -> exit Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N1YS88ZAY2rXVLmgvyN4oY
This was referenced Aug 5, 2026
Greptile SummaryThe PR adds a chain- and DEX-agnostic
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| mcp_servers/hummingbot_api/tools/gateway_amm.py | Implements per-action validation and dispatch from the MCP tool to the SDK AMM router. |
| mcp_servers/hummingbot_api/formatters/gateway.py | Formats AMM pool, transaction, and Meteora per-position results, including position addresses. |
| mcp_servers/hummingbot_api/schemas.py | Defines the connector-agnostic AMM request contract and position-addressed Meteora parameters. |
| mcp_servers/hummingbot_api/server.py | Registers manage_amm and connects MCP arguments to request validation, dispatch, and formatting. |
| agents/meteora_launch_lp/routines/launch_safety_check.py | Implements launch-token safety gates and normalizes empty RPC configuration before performing Solana checks. |
| agents/meteora_launch_lp/strategies/launch_lp_operator/strategy.md | Defines the autonomous discovery, gating, position-management, and exit lifecycle for Meteora launch LPs. |
Sequence Diagram
sequenceDiagram
participant Agent as Meteora Launch LP Agent
participant Routine as Discovery/Safety Routines
participant AMM as manage_amm
participant SDK as gateway_amm SDK
participant Gateway as Gateway AMM Router
Agent->>Routine: Scan EasyA graduations
Routine-->>Agent: Ranked pool candidates
Agent->>Routine: Run launch safety checks
Routine-->>Agent: PASS/FAIL gates
Agent->>AMM: Quote and add liquidity
AMM->>SDK: Dispatch connector action
SDK->>Gateway: Execute AMM request
Gateway-->>SDK: Position and transaction result
SDK-->>AMM: Structured response
AMM-->>Agent: Formatted position_address/signature
Agent->>AMM: Monitor or remove named position
Reviews (2): Last reviewed commit: "fix(amm): list position addresses in pos..." | Re-trigger Greptile
| min_wallet_sol_reserve: 0.3 | ||
| max_positions: 3 | ||
| max_quote_per_position: 0.5 | ||
| rpc_url: '' |
There was a problem hiding this comment.
Contributor
Author
There was a problem hiding this comment.
Fixed in 4a04f2b — launch_safety_check now treats a falsy rpc_url as the public-mainnet default via a field_validator, so the empty-string default config no longer fails every RPC gate.
…pty rpc_url as public default - positions_owned formatter now lists each position's address (needed for restart adoption and position-specific remove_liquidity), not just pool-level aggregates. - launch_safety_check treats a falsy rpc_url as DEFAULT_RPC instead of posting to an invalid empty URL and failing every RPC gate. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
rapcmia
approved these changes
Aug 7, 2026
rapcmia
left a comment
Contributor
There was a problem hiding this comment.
Setup this PR with the ff
- hummingbot/gateway#671
docker - hummingbot/hummingbot-api#206
docker - hummingbot/hummingbot-api-client#24
- Loaded the AMM guide through the correct Meteora Launch LP context.
- Verified pool, position, positions-owned, and swap-quote reads without moving funds.
- Confirmed Raydium and missing-position guard cases fail cleanly.
- Completed the small real-funds SWCH buy, LP open, and exact 100% removal cycle.
- Confirmed Condor delegated correctly to meteora_launch_lp.
- Verified the active DAMM v2 NFT position through consult and manage_amm(position_info).
- Added liquidity to the existing NFT position, waited 15 seconds, removed 100%, and confirmed zero remaining liquidity.
- Completed the Launch LP dry-run with no trades or executors. Candidates failing safety checks were rejected safely.
- Tested using DLMM pool was rejected by the managed_amm since it focused on DAMMv2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
manage_amm — direct, chain- & DEX-agnostic AMM tool (Meteora DAMM v2 / Raydium CPMM / Uniswap V2) over
client.gateway_amm, position-addressed for Meteora, with a progressive-disclosure guide. AddsAMMRequest,tools/gateway_amm.py,guides/gateway_amm.md,format_amm_result, server registration.Meteora Launch LP agent (
agents/meteora_launch_lp) — early LP on tokens graduating from launchpads (EasyA) into Meteora DAMM v2:easya_graduation_monitor: detect graduations off the Meteora data API via theEASYvanity mint-suffix (no launchpad API)launch_safety_checkroutine+skill: mint/freeze authority (RPC) + top-holder concentration + LP lock gatesdamm_v2_scanner: fee-yield harvestlaunch_lp_operatorstrategy: detect → gate → enter → monitor → exitTop of the 4-layer stack; depends on the SDK router.
🤖 Generated with Claude Code
https://claude.ai/code/session_01N1YS88ZAY2rXVLmgvyN4oY
Related PRs — 4-layer AMM integration (merge bottom-up, each depends on the one below):
/trading/amm/*/gateway/amm/*routerclient.gateway_ammmanage_ammtool + Meteora Launch LP agent