## Superfest Missions Assistant ### User stories 1. User types `/help` on the Superfest Discord (user can DM @Superagent if they've used it before) 2. User gets a DM from @SuperAgent with an initial prompt, similar to: `Hey! I'm SuperAgent, here to help you navigate SuperFest and complete missions at record speed. Provide me with your wallet address to start` 3. User provides wallet address 4. @Superagent analyzes different wallet parameters, and presents a list of missions for the user to select 5. User chooses mission(s) 6. @Superagent guides the user through a conversation to form mission arguments 7. @Superagent prepares the necessary mission transactions for the user and provides a "checkout" link 8. User clicks on the checkout link and gets taken to a dedicated UI that displays a list of pre-populated mission transaction forms 9. User can tweak parameters, and sign and send the prepared transactions ## Missions <!-- - Lido: Deposit ETH on wstETH Market (Shared with Silo) - Contract to interact with: https://optimistic.etherscan.io/address/0xc66d2a90c37c873872281a05445ec0e9e82c76a9 - Example of a transaction: https://optimistic.etherscan.io/tx/0x5e11be58a7d4c76805277048a5ec5d91ec4a8bfe76bf79de16a4999bef4f4fa0 ![image](https://hackmd.io/_uploads/HJVD4IrOR.png) ** Couldn't find SDK for silo so we might need to interact with contracts directly --> ### Base TODO's <!-- - [Aerodrome](https://jumper.exchange/es/superfest/rewards-from-aerodrome-on-base/): [DONE] - Once you have `AERO` you can just lock those in their contract - [Example transaction](https://basescan.org/tx/0xf62e75a7b769a492ac397a06876fd60f70cf006fa5f728b67fe46cb13afdd0b4) ![image](https://hackmd.io/_uploads/S1Y5Uo8u0.png) --> - [Beefy](https://jumper.exchange/es/superfest/rewards-from-beefy-on-mode-base-op/) - Base mission is [Aerodrome <-> USDC Vault](https://app.beefy.com/vault/aerodrome-usdc-aero) - User may deposit USDC or AERO. We will need to use their SDK or API; haven't found yet how to get the arguments to call their contract (The example they gave is through their UI) - https://github.com/beefyfinance - https://docs.beefy.finance/faq/how-to-guides/how-to-deposit-in-a-vault - [USDC Deposit worked as expected](https://basescan.org/tx/0xe21740fcea7af40d8d9fdeb2d3f41962895e2ad25888b9805e078fc0314fdbba) - [AERO Deposit fails in UI](https://basescan.org/tx/0xbb06975ec9cfd21e2cdd94cf15eb3c938c1e3651dd4639f63b208da8063ec85f) - [Contango](https://jumper.exchange/es/superfest/rewards-from-contango-on-base/) - [Example transaction creating a position for wstETH on MorphoBlue using ETH](https://basescan.org/tx/0xc6f65828ae40c8218bcf50e973511a0461dc3a5d482ff710573907e2dbef40bd) - [Example transaction creating a position for wstETH on Aave using USDC](https://basescan.org/tx/0x54b5fb43935630168f18f1452bab70c5a6c0cd2985bc83b1877008275c0b19b2) - Uses multicall under the hood; we need to manually prepare this calldata, haven't found the SDK https://docs.contango.xyz/ - [Lyra](https://jumper.exchange/es/superfest/rewards-from-lyra-on-base/) - It creates a session key and then sends a signature through their API - https://lyra.finance/u/developers - [Example transaction](https://basescan.org/tx/0xb278c5f878ed0300c426529a08b96d545f90c4cd301a5ea5f2b59ba1b2ecfad7) - [Aave](https://jumper.exchange/es/superfest/rewards-from-aave-on-base/) - Supply weETH & Borrow USDC/ETH/weETH - Supply weETH might not work because has achieved max supply - In order to borrow we want to check if user has collateral & risk of it (Which is different across different assets) - [Kelp](https://jumper.exchange/es/superfest/rewards-from-kelp-on-base-op/) - [Add ETH and rsETH](https://aerodrome.finance/deposit?token0=0x4200000000000000000000000000000000000006&token1=0xEDfa23602D0EC14714057867A78d01e94176BEA0&type=-1) to aerodrome - [Renzo (ezETH Rewards)](https://jumper.exchange/es/superfest/rewards-from-renzo-on-op-base-mode-fraxtal/) - Couldn't find any mission in base even tho it says is in base? - [Ether.fi (weETH Rewards)](https://jumper.exchange/es/superfest/rewards-from-etherfi-on-base/) - Shares borrow/supply weETH w/Aave - [Deposit ETH/weETH in Aerodrome](https://aerodrome.finance/deposit?token0=0x04C0599Ae5A44757c0af6F9eC3b93da8976c150A&token1=0x4200000000000000000000000000000000000006&type=-1) - [Uniswap](https://jumper.exchange/es/superfest/rewards-from-uniswap-on-base/) - Need to add liquidity to ETH <-> wETH Pool. Probably doing this through SDK will be the easiest <!-- - [Extrafi](https://jumper.exchange/es/superfest/rewards-from-extrafi-on-base/) [DONE] - [Example transaction lending ETH](https://basescan.org/tx/0x960edb85bf842150aa2447cfc2f40daf39c6ece43f292bce3a602d614cdea9a8) - [Toros](https://jumper.exchange/es/superfest/rewards-from-toros-on-base/) [DONE] - [Example transaction buying sUSCDy](https://basescan.org/tx/0xc79b49c0faef298f35b1f98917f2e8df932f72ea07da76c9df33564c7131f7cb) - We need to calculate the "expectedLiquidityArgument" -->