-
-
Ultimum P2P Lending dApp
-
Ultimum P2P Lending dApp
-
Ultimum P2P Borrowing dApp
-
Ultimum P2P Borrowing dApp
-
Ultimum DAO
-
Ultimum Swap
-
Ultimum Staking dApp
-
Ultimum Staking dApp
-
Ultimum decentralised chat for lenders and borrowers
-
Ultimum Protocol metrics
-
Ultimum user's balances
-
Ultimum blog
-
Live market data
Inspiration
Ultimum started as an ordinary DAO where members can create proposals, vote for/against proposals and view proposals. Then we integrated the Ultimum services and the rest is history.
What it does
Ultimum is a DeFi protocol offering P2P lending/borrowing, staking using the time-framing method, swapping using ChainLink and RedStone oracles and of course the protocol is governed by a DAO. More details about what Ultimum does is in the documentation on the GitHub repo.
How we built it
Originally built by a team of two members, one for the smart contracts, and the other front end and integration, we built the project from scratch leveraging best practises in solidity, ethers.js and nextjs and other programming tools.
Challenges we ran into
The first challenge we ran into was providing a more suitable wallet connect option for our users. We needed flexibility in reading from and writing to the smart contracts. Initially we used just the Ethers.js library, but it had its short comings in terms of user experience. So we opted for the Web3Modal x Ethers.js combo which is more user friendly, provides email login and a vast collection of wallet providers and provides an easy wallet connect option for our users with all the network settings to connect to Lisk. Second challenge we had was integrating ChainLink oracles with the Swap. We then opted for Redstone oracles for the Ultimum swap, even though the OpenZeppelin version it uses is a bit of an older version, somehow, we pulled it off with both oracles. Another challenge we had was creating a decentralised chat option for the lending/borrowing dApp because we want our lenders and borrowers to be able to communicate with each other while still ensuring privacy and anonymity. We tried Firebase, but it wasn't giving us the decentralised feeling, so we opted for the PostgreSQL database such that only the lender and borrower of a particular loan can chat with each other.
Accomplishments that we're proud of
We are proud of our P2P lending/borrowing dApp because after going back and forth with the contract functions, we were able to implement it and also for the fact that it has a very good user interface and experience. We are also proud of our swap dApp because we were able to implement ChainLink and RedStone oracles to make state changes on the blockchain. We are also proud of the staking dApp because we were able to provide flexibility in staking by implementing the time-framing method of staking which gives stakers absolute freedom. Overall, governing Ultimum with the Ultimum DAO, we can't be more proud. Our DAO is very user friendly and provides good UI/UX with search and pagination functionalities and auto-navigate. As an addition, we implemented a blog/newsletter to keep our users updated on latest improvements in the ecosystem.
What we learned
What we learned is that if we can think a solution, we can build it.
What's next for Ultimum DeFi Protocol
We are not stopping here as we have a bigger vision for Ultimum. We keep improving Ultimum and in the future, we intend to integrate more oracles and provide more services. We are also focused on user experience and decentralisation.
Built With
- chainlink
- ethers.js
- filebase
- foundry
- javascript
- next.js
- openzeppelin
- postgresql
- redstone
- solidity
- tailwind
- tradingview
- web3modal
Log in or sign up for Devpost to join the conversation.