- Swapping & Bridging across the EVM, Solana, and Sui ecosystems
- (Automated) Farming/Vaulting with optimal yields with assets sourced from any chain
- Lending/Borrowing at optimal rates
- Unified dashboard of activity
- Omni-chain APIs/smart contracts
- Fiat on-ramp/off-ramp
Altverse is a project inspired by the many pain points associated with using the ever-growing number of useful tools and features separated by segregated protocols, chains and dApps. Altverse aims to create a unified user experience by offering exposure to the best of Web3 in a single place, regardless of what chain user assets are sourced from.
Our platform does more than just aggregate protocols - we abstract away complexities, giving our users a single, simple, and easy-to-use platform for all their needs.
This repository is the frontend component for our project. The Altverse frontend enables users to connect up to 3 different wallets simultaneously across a selection of EVM, Solana and Sui wallets, providing an interface for users from all different chains to swap and stake tokens across Web3 seamlessly.
- NextJS: core web development framework
- Tailwind CSS: for tailwind utility classes to style components consistently and quickly without additional boilerplate
- Zustand: for lightweight and fast storage across components and site refreshes
- Shadcn: reusable UI component library
- AWS Lambda: to support our frontend with a serverless API
- Reown: wallet kit to support a scalable selection of wallets across networks (currently used for Solana and EVM)
- Suiet: wallet provider for the Sui network
- Mayan SDK: cross-chain SDK to facilitate cross-chain & cross-environment swaps
- CoinGecko API: token list information and token metadata
- Alchemy API: for user token balances, allowances, and price feeds
- BlockVision API: for user token balances, allowances, and price feeds
- Vercel: for swift automatic site deployments
- Husky: to add
pre-commit
andpre-push
git hooks to format and lint our repository - GitHub Actions: to enable token metadata refreshes and site redeployments automatically
# Install dependencies
npm install
# Run development server
npm run dev
Visit http://localhost:3000 to view Altverse in your browser.
Below is a simplified explanation of our repository structure:
site/
├── public/ # contains all our images and token metadata
│ ├── images/
│ ├── protocols/
│ ├── tokens/
│ └── wallets/
├── src/
│ ├── api/ # api for our backend
│ ├── app/ # landing page
│ │ ├── (dapp)/ # contains pages inside the dapp
│ │ │ ├── borrow/
│ │ │ │ └── page.tsx
│ │ │ ├── layout.tsx
│ │ │ └── swap/
│ │ │ └── page.tsx
│ │ ├── favicon.ico
│ │ ├── ...
│ ├── components/
│ │ ├── layout/ # core visual components used across the site
│ │ │ ├── MainNav.tsx
│ │ │ ├── SiteFooter.tsx
│ │ │ ├── ...
│ │ └── ui/ # reusable visual components
│ │ ├── Accordion.tsx
│ │ ├── AlertDialog.tsx
│ │ ├── ...
│ ├── config/ # site configuration (e.g. what chains we support)
│ │ ├── chains.ts
│ │ └── tabs.ts
│ ├── lib/
│ │ └── utils.ts
│ ├── store/ # Zustand storage contexts
│ │ ├── uiStore.ts
│ │ └── web3Store.ts
│ ├── types/ # reusable type definitions
│ │ ├── ui.ts
│ │ ├── web3.ts
│ │ └── window.d.ts
│ └── utils/ # reusable helper/wrapper functions
│ ├── chainMethods.ts
│ ├── mayanSwapMethods.ts
│ ├── ...