During December, our primary focus was around technical debt and code cleanup. We underestimated the complexity of migrating from our discrete rewards distribution method to continuous rewards, but thankfully much of the work and testing around continuous rewards overlapped with our smart contract code cleanup plans.
Here’s what we've accomplished since our December update:
- Added the ability to import custom tokens
- Added the ability to create custom liquidity pools
- Built extensive unit and integration tests, to significantly improve the smart contract testing processes
- Cleaned up the smart contract code
- Continued progress on bBALN implementation
- Added the implied APYs for staking BALN and liquidity pool fees to the Stats page (in testing)
- Began smart contract work on the ability to repay your loan by selling collateral
- Tested smart contracts on the new Berlin testnet for transaction fee estimations
- Began work on a Stability Fund contract
Quality of life and code improvements:
- Sorted the assets in the Swap/Supply dropdowns by the amount held in your wallet
- Added the ability to search for assets in the Swap/Supply dropdowns
- Fixed a bug with transaction routing that would sometimes cause ICX transactions to fail
- Fixed a bug in the DEX contract when supplying liquidity
- Fixed an issue with submitting an on-chain vote through the app
December saw two proposals submitted for a vote:
BIP14 proposed to halve the rewards allocated to the BALN / bnUSD pool, and redirect them to pools that generate more volume: sICX / bnUSD, BALN / sICX, IUSDC / bnUSD, and USDS / bnUSD. Ultimately, the community decided to reject this proposal, which saw only a 55% approval rating. See the forum discussion for more details.
BIP15 was proposed to address the increased demand for bnUSD, which saw the price consistently above $1, causing reverse rebalancing (loans increased to purchase more sICX collateral). A 35% loan-to-value ratio was initially proposed in the forum discussion, but the community agreed that a more incremental change would be best. This proposal passed by a landslide, and the LTV was increased from 25% to 30%.
Voting on another proposal, BIP16, is ongoing, and aims to boost the incentives for borrowers and the BALN / sICX liquidity pool. If approved, it will make the following changes:
- Reserve fund: 1% -> 0.5%
- Borrowers: 10% -> 12.5%
- sICX / ICX pool: 5% -> 3%
- sICX / bnUSD pool: 14.5% -> 12%
- BALN / bnUSD pool: 14.5% -> 12%
- BALN / sICX pool: 10% -> 15%
To learn more about this proposal, take a look at the forum post.
Custom tokens and liquidity pools
Earlier this week, we pushed an update to the Trade page that allows anyone to import custom tokens into the Balanced UI, and create custom liquidity pools. If you have unlisted assets you'd like to swap or supply liquidity for, you can now do so without needing to coordinate with the Balanced developers.
Import custom tokens
To import a custom token, click the Swap or Supply asset dropdown, then paste the token's contract address into the search field. Click Import when it finds a match, check the details are correct, then import it. You'll then be able to interact with this asset in Balanced using any wallet on your device. It won't be added to Balanced on any other device – if you want Balanced to officially support it, talk to the Balanced developers on Discord.
Create a custom liquidity pool
To create a new liquidity pool, go to the 'Supply liquidity' section, click the first asset dropdown and choose an asset – either your new custom token, or an existing asset. Pair it against sICX, bnUSD, IUSDC, or USDS, then enter the amount to supply for each asset to set the initial price ratio. Click 'Create pool' and supply your liquidity.
For more assistance, check out the Balanced docs.
New collateral types
Over the last month, the developers working on new collateral types took care of some data structure changes, but the majority of the remaining work relies on the finalized code for continuous rewards. We plan to deploy continuous rewards this month, so after that we'll be able to progress much faster.
In December, the developers finished the implementation and initial testing of the bBALN smart contract changes.
In January, they plan to continue integration testing, plan the migration process from the current staking method to locking BALN, and integrate the bBALN architecture with existing smart contracts, like for governance power and BALN reward distributions.
Targets for January
We made good progress on code cleanup for the smart contracts, but the custom tokens/liquidity pools implementation proved to be more complex than expected. To get the Trade page running as smoothly as possible, the front-end developers will take this month to refactor and optimize the code.
During January, we also plan to:
- Deploy continuous rewards to mainnet
- Update the Trade page to allow for staking LP tokens
- Add the implied APYs for staking BALN and liquidity pool fees to the Stats page
- Enhance the mobile experience
- Refactor the front-end code and limit the number of API calls
- Continue implementing and testing bBALN
- Continue implementing multi-collateral bnUSD
- Continue working on the ability to sell off collateral to repay bnUSD (aiming for testnet deployment)
- Continue working on the Stability Fund smart contract (aiming for testnet deployment)
- Begin work on protocol-owned liquidity contracts for Balanced
If you have any questions or want to discuss these changes, join our Discord channel.