By Keefer Taylor, Luke Youngblood and Ryan Sears
In late 2020, we set out to build Kolibri, a set of smart contracts on Tezos which can be used to issue kUSD, a trustless, algorithmic stablecoin that is collateralized by XTZ and soft pegged to the US Dollar.
Today, we’re excited to share the testnet version of Kolibri, accessible on Tezos’ Delphi testnet at https://testnet.kolibri.finance/. We’ve also started a Kolibri Discord where you can come hang out with us and ask any questions you have. To use Kolibri, you’ll need to have the Thanos wallet browser extension installed. Importantly, testnet XTZ and kUSD have no value, and the developers may reset the system at any time.
Read on to find out about how to get started, what you can do with kUSD, and how you can help us launch Kolibri.
This release of Kolibri is on Tezos Delphinet and should be considered a technology preview only. Bugs are possible in both the front end interface and smart contracts. If you find one, we’d love to hear about it in the #bugs channel so we can work on fixing them prior to launching on mainnet.
How does this all work anyway?
Kolibri works by deploying non-custodial smart contracts (that we refer to as “Ovens”) which are owned by the account which deployed it (the “owner”) Oven owners can deposit or withdraw XTZ (“collateral”) from the oven, or generate kUSD against the collateral in the oven.
Kolibri enforces a minimum ratio of collateral to kUSD (a “Collateralization Ratio”). Initially, we’ve set this to 2:1, meaning every $1 of kUSD is backed by $2 in XTZ. Prices are reported by a price oracle that Keefer and Luke launched recently called Harbinger, using a Coinbase data feed. It’s critical for stability that Ovens across the ecosystem are properly collateralized, so if a user’s collateral falls below this minimum ratio, other users can (and should) restore the stability to the system via a process called “liquidation” where they repay the under collateralized loan and seize the collateral. This is one of the key mechanisms that helps kUSD keep its peg.
Created kUSD is charged a fee (“Stability Fee”) which is returned to the system in order to act as a liquidator of last resort, with a portion also going into a “Dev Fund” to help fund future development.
On testnet, system parameters can be raised or lowered as necessary to keep stability in the system. Governance over these parameters may become community-led upon mainnet launch or later.
A more detailed explanation of Kolibri is available in our documentation.
We’re excited to publish additional technical details in follow on blog posts and documentation in the near future. In the meantime, if you have questions you can drop by our Discord.
Set up a Delphinet Wallet
To get set up , you’ll need to do the following:
- Install the Thanos Wallet extension. Thanos is the only wallet compatible with Kolibri at this time.
- Generate or import an address. We recommend using a new address that has not been used before
- Fund the account. We recommend using this testnet faucet.
- Add kUSD to Thanos by opening Thanos, and clicking “Manage”, then “Add Token”
- Select “FA 1.2” and use the address “KT1RXpLtz22YgX24QQhxKVyKvtKZFaAVtTB9”
- In the new fields that appear, set symbol to “kUSD”, name to “Kolibri USD” and decimals to “18”. If you’d like a logo, you can use “https://kolibri-data.s3.amazonaws.com/logo.png”
- Click “Add Token”
Make Some kUSD
Now that you have a funded Delphinet wallet, you can generate some kUSD:
- Navigate to the Testnet Kolibri Portal
- Click the “Connect Wallet” button and allow Thanos permission to allow Kolibri to talk to Thanos
- Open an Oven by clicking the “Create new Oven” button
- Wait for the Oven to be created on the blockchain, then deposit XTZ into the oven by clicking “Deposit”
- Acquire kUSD by clicking “Borrow kUSD” on the new oven. Note the UI warns you about the collateralization ratio.
- (optional) Delegate your funds to a baker by clicking on the “SET A BAKER” link.
One of the most promising applications of decentralized permissionless networks are decentralized finance (“DeFi”) applications. In the last year, we’ve seen rapid growth in DeFi, with DeFi Pulse estimating that over 2020, the amount of assets locked in DeFi increased from about 600 million to 19 billion dollars of USD (+3000%!).
After the launch of Harbinger, Luke and Keefer gave a talk at TQuorum titled “A Look into DeFi On Tezos with Harbinger”. In the talk, we presented the building blocks for DeFi on Tezos.
With the launch of Kolibri, multiple teams are now executing on the bottom levels of the stack. The excellent work by Nomadic Labs, Marigold, Metastate and other core developers continues to build improvements in the smart contract and consensus layers.
FA1.2 has become a widely accepted standard and FA2 introduces many improvements. The “Token Metadata” proposal has been finalized and support is being built into the indexers. We also see healthy and diverse set of token liquidity pools on DEXter, and a testnet version of a QuipuSwap exchange.
Wrapped assets are alive and well. Users can wrap BTC or ETH via Bitcoin Association Switzerland and StableTech technologies respectively. StakerDAO provides a new wrapped XTZ primitive (wXTZ). Both StakerDAO and Bender Labs have promised to deliver additional Ethereum based assets.
Harbinger, Kaiko, and Chainlink integration provide oracle solutions that allow us to place off chain data on chain for higher order products to use.
Kolibri joins the next layer as the first algorithmic stable coin available on Tezos. It joins USDtz, a fiat backed custodial stable coin. Additional stable coins, including Checker and USDS promise to launch later this year, which is truly exciting.
These developments all work together to enable the higher order DeFi primitives: lending platforms, options trading, insurance and derivative markets. If you’re building a higher order product and would like to integrate with an algorithmic stablecoin, we’d love to talk!
Onwards to Mainnet
We’re excited to share this initial release of Kolibri. Behind the scenes, we’re working hard pushing towards mainnet launch.
We’re still at work to provide a better front end UI experience. We’re also interested in validating our smart contract code in real world use cases without funds at risk. Observing real world system usage will help us to better understand and fine tune these economic parameters.
In the background, we are undergoing a security audit to gain additional confidence in the code before it handles real world funds. You can keep track of our progress on this page, which we’ll update as things progress.
How You Can Help
The most important job the Tezos community can do to help us isusing the product and reporting bugs and giving feedback. Come join us our Discord (if only just for the crypto memes) and help us build the best ecosystem we can!
Kolibri is not solely built by just the 3 of us. Kolibri stands on the shoulders of many giants and we wouldn’t be able to build these products without the help of other teams in the ecosystem.
We’d like to thank the following folks who have supported us along the way (In alphabetical order):
- Arthur Breitman — For architectural and economic advice
- Baking Bad — For Better Call Dev, the best contract explorer for Smart Contract Developers on Tezos, and makers of Faucet Bot, which has greatly saved our sanity.
- Cryptonomic — For ConseilJS which powers our deployment and testing process
- ECAD Labs — Makers of Taquito, which powers Kolibri’s frontend and who have diligently answered our questions and provided us with tech support
- Jacob Arluck — For architectural and governance advice
- Madfish Solutions — For building tools like QuipuSwap and Thanos, building blocks which we wouldn’t be able to build this project without
- MakerDAO — For serving as prior art and pioneering many of economics of Kolibri
- The SmartPy Dev Team — For the excellent smart contracting language, supporting our feature requests, and constant tech support.
- The Tezos Foundation — For generously funding a security audit.