Tumbuh
Maximize IDRX returns with smart vault allocation
Created on 17th May 2025
•
Tumbuh
Maximize IDRX returns with smart vault allocation
The problem Tumbuh solves
Most IDRX holders face limited DeFi opportunities due to the scarcity of high-yield protocols supporting IDRX directly. Additionally, the weakening value of IDR against the USD reduces the long-term earning potential for users who stay in IDRX-denominated assets.
This project solves that by allowing users to deposit IDRX into an ERC-4626 vault that automatically converts and allocates 70% of the funds into high-APY stable coin protocols (USDC, USDT, or DAI). This approach increases earning potential, diversifies risk, and gives users exposure to more lucrative DeFi opportunities, all while preserving share-based accounting and simplifying the user experience through smart, auto-rebalancing logic.
Challenges we ran into
One major challenge was handling the conversion from IDRX, a low-decimal local currency token, into stablecoins like USDC, USDT, and DAI, which have different decimal standards. Ensuring accurate and lossless conversions required careful precision handling in Solidity to prevent rounding errors.
Another challenge was designing an auto-rebalancing mechanism that could evaluate APY across multiple protocols in real-time while maintaining gas efficiency and security. To overcome this, we implemented a modular architecture where each protocol is abstracted, allowing the vault to query, compare, and allocate funds dynamically.
Rigorous testing was also essential to simulate edge cases and ensure stability during allocation switches.
Using IDRX at: 0xD63029C1a3dA68b51c67c6D1DeC3DEe50D681661 - ( 2 decimals )
MockUSDT deployed at: 0x9D8B0C5E1Af5b214E9228e32CA26638040DE2f8f
MockUSDC deployed at: 0xA0b44F399069F62b4F3114f9EA43d8ec5E904366
MockDAI deployed at: 0x65920cE72aABe1f521926087e4CeD45774C9aBaF
MockAaveProtocol deployed at: 0xf6dAb9e38f5761A7e7d1D7380165cC8bBA3A6597
MockEthenaProtocol deployed at: 0x64A672DD5960a45FFCf788bdEe7b9788B6c5F525
MockMorphoProtocol deployed at: 0x638C0b31013165dF3cba52b1B094924f78045f6C
MockEtherealProtocol deployed at: 0xcCe8490C58f36954f1Bc06E986015892E6b5E08C
MockEulerProtocol deployed at: 0x26868A41fD3Ae8ca651Be1cd856a06476B886a83
MockFluidProtocol deployed at: 0x407F62290B5a25772b06b20A8f82015594ca0db8
MockResolvProtocol deployed at: 0xA3AeE8E16516cD131c702E2FcA99D1fdccE165e4
MockCurveProtocol deployed at: 0x891DD8156BE4e2d46AB755BbEDEfb18F88d099f7
MockKaitoProtocol deployed at: 0xCc712b4d60fefFC16d5b89F533A7681e76B399d8
MockElixirProtocol deployed at: 0x746bC51BE4Ce64493E6e03AE830649E37A1344a2
SwapRouter deployed at: 0x3c6B107D55DBAc2B35422C896E1fFaC460d8e7dE
IDRXVault deployed at: 0x8A365B70A72b325f61D854560aFe29b40A8a8d50
Agent deployed at: 0xa83866fe2FE7a54881477f499bcE8db945195072
Technologies used
