{"id":26054832,"url":"https://github.com/morpho-org/earn-basic-app","last_synced_at":"2025-03-08T10:00:14.056Z","repository":{"id":278396697,"uuid":"935483519","full_name":"morpho-org/earn-basic-app","owner":"morpho-org","description":"A minimal interface for interacting with Morpho Vaults, using bundler's functionality. This application allows users to execute DeFi operations in a single transaction using Morpho Blue's bundling capabilities. WIP.","archived":false,"fork":false,"pushed_at":"2025-02-28T07:34:10.000Z","size":772,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T14:25:24.461Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/morpho-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-19T14:17:40.000Z","updated_at":"2025-02-28T07:34:14.000Z","dependencies_parsed_at":"2025-02-19T15:42:16.819Z","dependency_job_id":null,"html_url":"https://github.com/morpho-org/earn-basic-app","commit_stats":null,"previous_names":["morpho-org/earn-basic-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morpho-org%2Fearn-basic-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morpho-org%2Fearn-basic-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morpho-org%2Fearn-basic-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morpho-org%2Fearn-basic-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/morpho-org","download_url":"https://codeload.github.com/morpho-org/earn-basic-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242532348,"owners_count":20144726,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-08T10:00:13.389Z","updated_at":"2025-03-08T10:00:14.050Z","avatar_url":"https://github.com/morpho-org.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Morpho Vaults - Earn Basic Interface\n\n## Overview\n\nA reference implementation showcasing how to integrate Morpho Vaults (EARN) into any frontend application. This template provides a starting point for building a basic interface for Morpho Vaults.\n\n![image](./public/sdk.png)\n\n![image](./public/api.png)\n\n## Technical Stack\n\n### Core Libraries\n\n- **React**: Frontend framework\n- **TypeScript**: Type-safe development\n- **Vite**: Modern build tooling\n\n### Morpho Integration Libraries\n\n#### Core SDK Packages\n\n- **@morpho-org/blue-sdk**: Core protocol integration\n- **@morpho-org/bundler-sdk-viem**: Simplifies complex transactions into bundled operations\n- **@morpho-org/simulation-sdk**: Position simulation capabilities\n\n#### Framework Integrations\n\n- **@morpho-org/blue-sdk-viem**: Viem-based fetch methods\n- **@morpho-org/blue-sdk-wagmi**: React hooks for Morpho data\n- **@morpho-org/simulation-sdk-wagmi**: React hooks for simulation state\n\n#### Utility Packages\n\n- **@morpho-org/morpho-ts**: Time and formatting utilities\n- **@morpho-org/morpho-test**: Test fixtures for E2E testing\n\n### Web3 Infrastructure\n\n- **wagmi**: React Hooks for Ethereum\n- **viem**: Low-level Ethereum interactions\n- **RainbowKit**: Wallet connection UI\n- **@tanstack/react-query**: Data management\n- **@apollo/client**: GraphQL integration\n\n### Styling\n\n- **Tailwind CSS**: Utility-first styling\n\n## Key Features\n\n### SDK View\n\n- Real-time position tracking\n- One-click deposits and withdrawals (approvals are handled thanks to the bundler-sdk-viem)\n- Built-in transaction bundling\n- Automatic approval handling\n- Position simulation before execution\n\n### API View\n\n- Comprehensive vault details\n- Real-time liquidity data\n- Asset allocation visualization\n- Historical performance metrics\n- Metadata display\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v16 or higher)\n- Yarn\n- Web3 wallet (MetaMask, Rabby, or OKX)\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone [repository-url]\n\n# Install dependencies\nyarn install\n```\n\n### Development\n\n```bash\n# Start development server\nyarn dev\n```\n\nAccess the application at `http://localhost:5173`\n\n### Production Build\n\n```bash\nyarn build\n```\n\n## Integration Guide\n\n### Custom Hooks\n\nThe project includes essential hooks for Morpho integration:\n\n1. **useGetUserSDKVaultPosition**\n\n   - Tracks user's vault positions\n   - Real-time balance updates\n   - Share-to-underlying conversion\n\n2. **usePopulatedSimulationState**\n   - Pre-transaction simulation\n   - Gas estimation\n   - Error prevention\n   - Position health checks\n\n### Key Components\n\n#### SDK View (`TestInterface`)\n\n```typescript\n// Handles deposits, withdrawals, and position management\nconst TestInterface = () =\u003e {\n  // Integration code...\n};\n```\n\n#### API View (`VaultAPIView`)\n\n```typescript\n// Displays comprehensive vault data\nconst VaultAPIView = ({ vaultAddress }) =\u003e {\n  // Display code...\n};\n```\n\n## Development Notes\n\n### Default Configuration\n\n- Default vault: Gauntlet WETH Prime Vault\n- Network: Ethereum Mainnet (with Anvil support for testing)\n- Supported wallets: MetaMask, Rabby, OKX\n\n### Error Handling\n\nComprehensive error management for:\n\n- Wallet connections\n- Transaction failures\n- Position validations\n- Input verification\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorpho-org%2Fearn-basic-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorpho-org%2Fearn-basic-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorpho-org%2Fearn-basic-app/lists"}