
MintLp
A decentralised AMM
Demo
About
The problem it solves Traditional AMMs treat liquidity providers (LPs) like anonymous numbers by giving them fungible LP tokens. This causes multiple issues: LP positions are not unique, even though every LP has different deposit time, risk, range and fees. No clear visibility of fees earned, PnL, impermanent loss, maturity, etc. Transfers are confusing (LP shares don’t describe what you're actually holding). New users find liquidity providing hard to understand and risky. What MintLP solves MintLP converts every liquidity position into a Data-Rich NFT. So instead of receiving a basic LP token, users mint an NFT that represents their exact LP position. How people can use it MintLP makes liquidity providing more transparent, safer, and user-friendly: Provide liquidity easily using a simple UI Mint an LP Position NFT that contains: Principal value Accumulated fees Impermanent loss stats Age & maturity of position Range/concentrated liquidity info View LP holdings in a portfolio gallery Trade/transfer LP positions as NFTs (future scope)
How it's made
Challenges we ran into Challenge 1: Wallet dependency / Demo usability A major hurdle was that many judges/users don’t have an Aptos wallet installed (like Petra). That would cause a poor first impression: project doesn’t run = rejected fast. How I solved it I implemented a Hybrid Architecture: Smart Contract Mode (real wallet + onchain) Mock Mode / Demo Wallet (no wallet needed) So if wallet isn’t available, the app automatically switches to simulation and still demonstrates: swap logic liquidity minting NFT metadata generation This made the project judge-friendly and fully demoable. Challenge 2: AMM math + stable/volatile behavior Implementing two AMM engines created complexity: Constant product: x*y=k (volatile pairs) Stable swap: simplified stable behavior for stable pairs Issue faced: incorrect pool outputs due to wrong reserves update order precision issues in simulation mode How I solved it standardized reserve update logic added guard checks for invalid swap amounts ensured consistent rounding/precision rules inside the simulation engine Challenge 3: NFT metadata design Creating metadata that is: meaningful to user clean UI friendly still “data-rich” Solution I designed structured metadata fields and displayed them visually in a Portfolio NFT Gallery, instead of dumping text.