Skip to content

normalfinance/normal-index-v1

Repository files navigation

✨ Normal Index v1 🦄

Customizable on-chain index funds supporting any cryptocurrencies, commodities, equities, forex, and more.

Features

  • Diversify your choice of hundreds of global assets and asset classes with ease
  • Create public index funds to invest with friends, family, or your community
  • Create private index funds to invest personally or deploy unique strategies for clients
  • Earn passive income when someone invests in your public index

Todo

  • Component obfuscation for private index funds (for proprietary strategies)
  • Normal DAO management of public indexes (possibly using Soroban Governor)
  • ...

Smart Contracts

  • index_fund - A DeFi primitive for diverisified portfolios using a basket of assets
  • index_fund_factory - Factory for creating and interacting with Index Fund contracts
  • adapter_registry - A registry tracking supported adapters for use with Index Funds

Adapters

  • normal - An adapter for buying and selling long and short Normal tokens via the Normal Treasury
  • aquarius - An adapter for swapping tokens using Aquarius AMM pools
  • soroswap - An adapter for swapping tokens using the Soroswap AMM Aggregator

Modules

  • access_control - Handles permissioned access to contracts using role-based authentication
  • adapter - Defines the interface adapters must export to work with index funds
  • index_access_control - Handles permissioned access to Index Fund contracts using role-based authentication
  • token_share - Handles index token utilities
  • types - Handles contract types
  • upgrade - Handles contract upgrades
  • utils - Handles shared types, utils, constants, errors, macros, and more

Built With

Getting Started

Prerequisites

Development setup

Clone project

git clone [email protected]:normalfinance/normal-index-v1.git

Build contracts

task build

Run tests

task test

(Optionally) Deploy & invoke contracts via soroban-cli

check the Soroban documentation: https://soroban.stellar.org/docs/reference/rpc

Authors

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contact

License

Apache-2.0

About

Fully customizable on-chain index funds supporting any crypto token, real-world asset, NFT, yield, and more.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors