Welcome to FinCube's GitHub repository! FinCube is a revolutionary platform leveraging blockchain technology to provide seamless, secure, and efficient cross-border financial services. By decentralizing control and fostering collaboration among Mobile Financial Services (MFSs), FinCube aims to enhance transparency, reduce transaction times, and lower costs, making financial services more inclusive and accessible.
- Introduction
- Features
- Technical Features
- Architecture
- Installation
- Usage
- Advantages
- Business Model
- Roadmap
- Contributing
- License
- Authors/Devs
FinCube addresses the inefficiencies of the current financial system, which heavily relies on centralized authorities like Central Banks and systems like SWIFT. By utilizing blockchain technology and decentralized governance through a Decentralized Autonomous Organization (DAO), FinCube enables near-instantaneous transactions, reduced costs, and enhanced security.
- Decentralization: Eliminates single points of failure and ensures continuous operation.
- Faster Transactions: Processes transactions almost instantaneously.
- Cost Efficiency: Lower transaction fees managed and set by the DAO.
- Transparency and Trust: Public ledger for all transactions.
- Compliance and Security: Built-in compliance with regulatory requirements and enhanced security through cryptography.
- Flexibility and Scalability: Easily adaptable to new market requirements and scalable to include new MFS members.
- Inclusive Governance: Democratic decision-making process through the DAO.
- Economic Inclusivity: Enhances financial inclusivity in underdeveloped and developing countries.
Features | Technology Used | Remarks |
---|---|---|
Containerization | Docker | Docker is used to containerize services FDX standard |
Message Queue | RabbitMQ | There are multiple services which need to communicate with each other at the same time. Some of them may not be active at the same time. So for interservice communication, Message Queue is used |
Blockchain Indexer | The Graph | Used to listen and query events from the blockchain |
Proxy Contract | UUPSUpgradeableProxy | The smart contract is made UUPS upgradeable to incorporate changes on the go |
Pagination | Solidity | Pagination is a way for a caller to make multiple smaller requests to retrieve the data. To prevent read function from being overflowed, pagination is used |
API Gateway | ExpressJS | Redirecting client request to appropriate backend container FDX standard |
Automated Contract Deployment | Shell script | Ensure the contract compiles and runs all tests before deployment, deploys, creates and moves artifacts to backend web3-proxy container, increasing customization for deployment |
FinCube leverages a combination of blockchain technology, smart contracts, and decentralized governance to create a robust and scalable financial platform. Key components include:
- Blockchain Ledger: For recording immutable transaction records.
- Smart Contracts: To automate and enforce transaction rules.
- DAO Governance: Ensuring democratic decision-making and policy setting.
- Web3 Integration: For seamless on-ramping and off-ramping of digital assets.
Services | Technology Used |
---|---|
Audit-trail-service | NestJS, RabbitMQ |
DAO-service | NestJS, PostgreSQL |
API-gateway | NestJS |
User-management-service | NestJS, PostgreSQL, Auth0 |
Web3-proxy-service | NestJS, Alchemy, Web3JS |
Backend folder contains more details regarding each of the services and the APIs.
<! -- we can add the screenshots from our project to this -->
Web3 services contain the smart contracts, smart contract testcases, deployment, UUPS proxy deployment functionalities.
To get started with FinCube, follow these steps:
-
Clone the repository:
git clone https://github.com/FinCube-23/DAO-Proposal-Governance.git cd DAO-Proposal-Governance
-
Install dependencies:
docker compose build
-
Configure environment variables: Create a
.env
file and add the necessary environment variables as per the.env.example
file. -
Run the application:
docker compose up
Once the application is running, you can interact with FinCube using the provided web interface or API endpoints. Detailed documentation on the API endpoints and usage examples can be found in the docs
directory.
- Eradicates Current Problems: Removes reliance on centralized authorities, enabling faster and more controlled transactions.
- Better than Centralized Systems: Offers decentralization, faster transactions, cost efficiency, transparency, compliance, scalability, inclusive governance, and increased economic inclusivity.
FinCube's revenue streams include:
- Commission Fees: From cross-border financial services transactions.
- Advertisement: Targeted ads on the platform.
- Data Analytics: Insights into customer behavior and trends.
- Auditing: Compliance and regulatory audits.
- Scale to include banks and cryptocurrency providers.
- Integrate advanced security measures like SMPC and ZK Proof.
- Develop a credit system and staking mechanism.
- Implement periodic transactions and remittance features.
- Ensure cross-currency bill and service payments.
Sprint plans of the project is here.
We welcome contributions from the community! To contribute to FinCube, follow these steps:
- Fork the repository.
- Create a new branch.
- Make your changes.
- Submit a pull request.
Please ensure your code adheres to our coding standards and includes appropriate tests.
Name | Role | Technical Contribution |
---|---|---|
@FahimDev | Technical Lead and Scrum Master | Message queue |
@SampadSikder | Backend Dev, System designer | Smart contract dev, smart contract testing |
@mashiat0808 | Backend Dev, Policy analyst | GraphQL, smart contract testing, FDX |
@antonin686 | Frontend Dev | Front end engineer |
Thank you for your interest in FinCube! We look forward to your contributions and feedback. For any questions or support, please reach out to our team at [email protected].