# Proposal ## Why Evelyn needs to realize proceeds from manually funded EVE/SyrupUSDC CLMM positions before a falling price converts them back to EVE. Issue #89 adds the smallest automated realization and USDC payout pipeline supporting Evelyn's sustained 100 USD/day objective. ## What Changes - Add a domain-only EvelynLiquidityService and a Hub-owned sequential process with three independent withdrawal, exact-input swap and payout steps. - Add full Raydium CLMM liquidity decrease with slippage protection and retained position accounts/NFTs. - Add strict versioned deployment configuration and a public placeholder example with both reserves zero. - Lazily construct dedicated liquidity wallet, Jupiter and direct Raydium dependencies only for the selected process. - Verify with controlled offline fixtures and document operation/recovery. - Correct the review findings from commit `7dfd43d`: refresh the pool price for each position after discovery and reuse existing owner token accounts before creating destination ATAs. ## Capabilities ### New Capabilities - `evelyn-liquidity-service`: Distance-based position realization, reserve-aware conversion/payout, configuration and runtime behavior. - `raydium-clmm-liquidity-withdrawal`: Protected full liquidity decrease preserving positions and NFTs. ### Modified Capabilities - `nenjim-hub-configuration`: Add the optional process to the known catalogue and defer its dedicated dependencies until selection. - `nenjim-component-registry`: Preserve eager shared composition while registering dedicated liquidity components only for the selected process. ## Impact Adds API and reference implementation packages under com.r35157.evelyn.service.liquidity, extends Raydium, and adds one optional Hub constructor. Deployment configuration and signer are required only when explicitly selected. No position creation/refill/closure, reference-price dependency, notifications or persistent service queue. No live financial verification, commits or pushes.