{"id":29630925,"url":"https://github.com/donpushme/strategies","last_synced_at":"2025-07-21T11:07:12.297Z","repository":{"id":301557570,"uuid":"960280470","full_name":"donpushme/strategies","owner":"donpushme","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-04T06:55:41.000Z","size":25693,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"mainnet-launch","last_synced_at":"2025-07-19T23:28:35.362Z","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/donpushme.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,"zenodo":null}},"created_at":"2025-04-04T06:54:50.000Z","updated_at":"2025-04-04T06:57:10.000Z","dependencies_parsed_at":"2025-06-27T14:21:50.704Z","dependency_job_id":null,"html_url":"https://github.com/donpushme/strategies","commit_stats":null,"previous_names":["donpushme/strategies"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/donpushme/strategies","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donpushme%2Fstrategies","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donpushme%2Fstrategies/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donpushme%2Fstrategies/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donpushme%2Fstrategies/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/donpushme","download_url":"https://codeload.github.com/donpushme/strategies/tar.gz/refs/heads/mainnet-launch","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donpushme%2Fstrategies/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266287824,"owners_count":23905461,"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-07-21T11:07:11.643Z","updated_at":"2025-07-21T11:07:12.271Z","avatar_url":"https://github.com/donpushme.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Amana Monorepo\n\nWelcome to the **Amana Monorepo**. This repository contains all the core components of the Amana project, organized for streamlined collaboration and development. Amana aims to provide decentralized finance (DeFi) solutions, enabling users to invest in crypto yield-bearing vaults in a seamless and efficient way.\n\n---\n\n## Project Overview\n\n### Purpose\n\nThe **Amana** platform provides users with a robust, decentralized system to optimize their investments through yield-bearing crypto vaults. The project leverages cutting-edge blockchain interoperability to enable cross-chain operations, ensuring accessibility and scalability.\n\n### Features\n\n- **Yield Vaults**: Supports depositing assets into vaults with yield strategies across chains.\n- **Cross-Chain Operations**: Seamlessly deposit and withdraw across multiple connected chains and ZetaChain.\n- **Performance Fees**: Deducts fees only on profits to ensure alignment with user interests.\n- **Gas Management**: Automated handling of gas for cross-chain operations.\n- **Transparent Treasury**: Efficient collection and distribution of protocol fees.\n- **Dynamic Swapping**: Token swaps through decentralized exchanges to optimize user returns.\n\n### Business Logic\n\n- **AmanaConnectedChainVault**: Manages investments for strategies on connected chains by integrating gas management and token swaps.\n- **AmanaZetachainVault**: Operates yield strategies directly on ZetaChain for seamless native-chain interoperability.\n- **Treasury**: Collects protocol fees for sustainability and operational support.\n- **GasTank**: Ensures smooth execution of cross-chain transactions by handling gas allocations.\n- **SwapHelperLib**: Provides utilities for token swaps, supporting multi-token operations.\n\n### Use Cases\n\n1. **Investor**: \n   - Deposit crypto assets into a vault to earn yield.\n   - Withdraw assets and accrued returns seamlessly across chains.\n   \n2. **Protocol Manager**:\n   - Configure vault strategies and update them dynamically.\n   - Collect performance fees transparently in the treasury.\n\n3. **Cross-Chain User**:\n   - Deposit assets on one chain and withdraw them on another using connected chain functionality.\n\n---\n\n## Roles and Authorizations\n\n### User Roles\n\n1. **Investor**:\n   - Access vaults for deposits and withdrawals.\n   - Claim rewards from yield strategies.\n   - No special permissions required.\n\n2. **Protocol Manager**:\n   - Configure and update vault strategies.\n   - Set performance fees and treasury addresses.\n   - Requires owner authorization.\n\n3. **Smart Contract**:\n   - Facilitates operations such as investing, swapping, and transferring funds.\n   - Operates with restricted permissions to ensure secure fund handling.\n\n### Access Control\n\n- **OnlyOwner**: Used for administrative functions such as setting strategies, treasury, or gas tank addresses.\n- **OnlyGateway**: Ensures that certain functions can only be triggered by the designated gateway for secure cross-chain operations.\n- **Revertable**: Provides fail-safe mechanisms for handling transaction errors and reverting funds.\n\n---\n\n## Repository Structure\n\nThe Amana Monorepo is organized into the following core components:\n\n```\namana-monorepo/\n├── frontend/           # Frontend React application\n└── contracts/          # Smart contracts for interacting with the blockchain\n```\n\n### Components Overview\n\n- **Frontend**: Contains the React-based web application that serves as the user interface for interacting with Amana vaults.\n- **Contracts**: Solidity-based smart contracts for managing yield vaults and token transactions on the blockchain.\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- **Node.js** (v16 or higher)\n- **npm** or **yarn**\n- **Git**\n- **Hardhat** or **Foundry** (for smart contract development)\n- **Next.js**\n- **Thirdweb** (for frontend)\n\n### Cloning the Repository\n\nTo clone the repository, run:\n\n```bash\ngit clone https://github.com/AmanaDefi/Amana-monorepo.git\ncd amana-monorepo\n```\n\n### Installation\n\nNavigate to the relevant directory and install the required dependencies:\n\n```bash\n# Install frontend dependencies\ncd frontend\nyarn\n\n# Install contract dependencies\ncd ../contracts\nyarn\n```\n\n---\n\n### Environment Variables\n\n#### Frontend Environment Variables\n\nCreate a `.env` file from the provided `.env.example` file in the `frontend` directory and add your Thirdweb client ID and an RPC node URL for Base:\n\n```bash\ncd frontend\ncp .env.example .env\n```\n\nEdit the `.env` file and add your Thirdweb client ID and RPC node URL:\n\n```bash\nNEXT_PUBLIC_TEMPLATE_CLIENT_ID=your-client-id-here\nNEXT_PUBLIC_ALCHEMY_RPC_URL_BASE=rpc-url-here\n```\n\n#### Contracts Environment Variables\n\nCreate a `.env` file from the provided `.env.example` file in the `contracts` directory and add the required keys:\n\n```bash\ncd ../contracts\ncp .env.example .env\n```\n\nEdit the `.env` file and add the following keys:\n\n```bash\nPRIVATE_KEY=your-private-key-here\nARBISCAN_API_KEY=your-key-here\nALCHEMY_API_KEY=your-key-here\nBASESCAN_API_KEY=your-key-here\n```\n\n---\n\n## Running the Application\n\n### Frontend\n\nTo start the frontend React application:\n\n```bash\ncd frontend\nyarn dev\n```\n\n### Smart Contracts\n\nTo compile and deploy the smart contracts:\n\n```bash\ncd contracts\nnpx hardhat compile\nnpx hardhat run scripts/deploy.js --network \u003cnetwork-name\u003e\n```\n\n---\n\n## Contribution Guidelines\n\nWe welcome contributions to the Amana project! To contribute:\n\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature/amazing-feature`).\n3. Commit your changes (`git commit -m 'Add some amazing feature'`).\n4. Push to the branch (`git push origin feature/amazing-feature`).\n5. Create a Pull Request.\n\nPlease read our [Contribution Guidelines](docs/CONTRIBUTING.md) for more information. (Coming soon)\n\n---\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## Contact\n\nFor any questions or feedback, feel free to open an issue or contact us at [jamieson.rich@gmail.com](mailto:jamieson.rich@gmail.com).\n\n---\n\nThank you for your interest in Amana. Together, let's build the future of DeFi!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonpushme%2Fstrategies","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdonpushme%2Fstrategies","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonpushme%2Fstrategies/lists"}