TokenVault: Unlocking Asset Potential
Inspiration
The inspiration behind TokenVault came from the growing trend of asset tokenization and its potential to revolutionize asset management and trading. By tokenizing diverse types of assets, we can unlock liquidity, enhance transparency, and democratize access to investments. This vision motivated us to develop a comprehensive platform that bridges the gap between traditional assets and the blockchain world.
What it does
TokenVault allows users to tokenize a wide variety of assets, enabling them to create, manage, and trade tokens representing real-world assets. The platform provides an admin interface for updating asset information, a backend for storing user data and asset details, and smart contracts for minting, redeeming, and managing tokens. Users can redeem tokens to obtain the equivalent value of the underlying assets.
How we built it
Admin Interface
We used Angular to build the admin side of the application. This part of the app allows administrators to update information about the assets that can be tokenized. The Angular framework provided a powerful and flexible way to create an interactive and user-friendly interface.
Backend Development
For the backend, we utilized NestJS to develop a RESTful API that we deployed on an EC2 instance using Docker and GitHub Actions for continuous integration and deployment. The backend serves as the central hub where web2 data is stored, including user information, available assets, and different stocks.
Smart Contracts
We developed and deployed a total of five smart contracts:
- Mint Requests: Handles minting requests for new tokens.
- Redeem Requests: Manages requests to redeem tokens back into their underlying assets.
- Collateral Tokens: Issues tokens based on the collateralization of an asset.
- Asset Manager: Manages the other contracts and handles different assets.
- Redemption Contract: Used for managing the process of redeeming tokens for their equivalent asset value.
To ensure accurate pricing, we used Chainlink data feeds for real-time price information of tokens like USDT. Additionally, we implemented Chainlink Functions to facilitate communication with our API, enabling seamless interaction between the smart contracts and the backend.
React Application
Although still under development, the React application will serve as the client-side interface for users to interact with our platform. This app will provide functionalities such as viewing available assets, managing their tokens, and participating in the tokenized asset ecosystem.
Challenges we ran into
- Integrating Angular with NestJS: Ensuring seamless communication between the frontend and backend required meticulous API design and thorough testing.
- Smart Contract Development: Writing and deploying smart contracts required a deep understanding of Solidity and careful consideration of security and efficiency.
- Chainlink Functions Integration: This was the most complex part, particularly managing the callbacks that required minimal gas usage. Ensuring efficient and cost-effective execution of these functions posed significant challenges.
- Caching with NestJS: Implementing caching in NestJS to make requests faster and less resource-intensive was crucial. This optimization was necessary for efficient execution by the Chainlink Functions.
- Continuous Deployment: Setting up an automated CI/CD pipeline using GitHub Actions and Docker presented several challenges, especially in managing dependencies and ensuring reliable deployments.
Accomplishments that we're proud of
We are proud of successfully developing and deploying a robust system that integrates various technologies, from Angular and NestJS to smart contracts and Chainlink. Overcoming the challenges of smart contract development and efficient gas management has been a significant achievement. Additionally, setting up a reliable CI/CD pipeline has streamlined our development process.
What we learned
Throughout this project, we gained extensive knowledge in:
- Frontend development with Angular.
- Backend development with NestJS.
- Smart contract development and blockchain integration.
- Implementing Chainlink data feeds and functions.
- Setting up and managing continuous integration and deployment pipelines.
- Optimizing backend performance with NestJS caching.
What's next for TokenVault: Unlocking Asset Potential
Moving forward, we plan to complete the development of the React application to provide a seamless user interface for interacting with our platform. We aim to enhance the functionality of TokenVault by adding more asset types and improving the user experience. Additionally, we will continue to refine our smart contracts and backend systems to ensure security, efficiency, and scalability.
We are also looking to integrate Cross-Chain Interoperability Protocol (CCIP) to eliminate blockchain boundaries and make our platform more accessible to users across different blockchain networks. This will further enhance the versatility and reach of TokenVault, making it easier for users to engage with tokenized assets regardless of the underlying blockchain.
Built With
- amazon-ec2
- amazon-web-services
- angular.js
- aws-rds
- chainlink-data-feed
- chainlink-function
- docker
- github
- github-actions
- github-jobs
- javascript
- nestjs
- rds
- react
- route53
- typescript

Log in or sign up for Devpost to join the conversation.