Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/onomyprotocol/reserve
Onomy Reserve
https://github.com/onomyprotocol/reserve
Last synced: 2 months ago
JSON representation
Onomy Reserve
- Host: GitHub
- URL: https://github.com/onomyprotocol/reserve
- Owner: pendulum-labs
- License: agpl-3.0
- Created: 2024-04-03T01:56:53.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-07-10T02:57:05.000Z (7 months ago)
- Last Synced: 2024-10-29T09:44:27.392Z (3 months ago)
- Language: TypeScript
- Size: 1.35 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: changelog.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - onomyprotocol/reserve - Onomy Reserve Stablecoin Issuance Protocol (Go)
README
# reserve
The Onomy Reserve
## Reserve Concepts
`denom` is a minted representation of a real-world asset
`collateral` is a coin that is deposited in a vault to mint denoms
`vault` is storage of collateral that is being or will be used for minting of denoms
`collateralization ratio` is the ratio of value of denoms minted to the collateral stored within a vault
`vault ratio` is the collateralization ratio of a vault at a given moment
`minter` is a user that mints stablecoins
`saver` is a user that bonds stablecoins for interest
`liquidator` is a user that liquidates a vault that is in default because of too low of collateralization ratio
## Reserve Parameters
`lending ratio` is the minimum vault ratio at which denom lent or collateral withdrawn
`liquidation ratio` is the vault ratio at which the vault for a specific denom may be liquidated by a liquidator
`burn ratio` is parameter that defines the ratio of burned vs stored NOM at liquidation of a vault
`liquidity deposit` is the minimum amount of liquidity for a specific collateral that must be provided to create a denom
`minting interest rate` is the interest rate on denoms loaned to minters. This is meant to aide in stabilization of the stablecoin.
`savings interest rate` is the interest rate paid on denoms that have been bonded to the reserve.
## Reserve Transactions
`create-vault` by depositing collateral. Each vault has a unique name per user as well as UID
`deposit` collateral or denoms into vault
`withdraw` collateral or denoms from vault. Withdrawal of collateral or denoms dependent on collateralization ratio.
`liquidate` vaults whose collateral ratios drop below the liquidation ratio
`bond` denoms to the reserve to earn savings interest
`unbond` denoms that have been bonded to the reserve
## Reserve Governance
`register-collateral` is a governance proposal that must be submitted to register a collateral for minting denoms
`create-denom` is a governance proposal that must be submitted to initialize a new denom
`update-minting-ratio` is a governance proposal that updates the minting ratio for a denom
`update-liquidation-ratio` is a governance proposal that updates the liquidation ratio for a denom
`update-minting-interest-rate` is a governance proposal that updates the minting interest rate for a denom
`update-savings-interest-rate` is a governance proposal that updates the savings interest rate for a denom
## Development
**reserve** is a blockchain module built using Cosmos SDK and Tendermint and created with [Ignite](https://github.com/ignite/cli).
Note: in order to regenerate proto files, install Ignite CLI v0.23.0 (do not use a later version until we update past SDK v0.45), `go mod tidy`, `rm -rf vendor` (you actually have to remove it for some reason), run `ignite generate proto-go`, then `go mod tidy` after that to clean up
## Get started
```
ignite chain serve
````serve` command installs dependencies, builds, initializes, and starts your blockchain in development.
### Configure
Your blockchain in development can be configured with `config.yml`. To learn more, see the [Starport docs](https://docs.starport.com).
## Release
To release a new version of your blockchain, create and push a new tag with `v` prefix. A new draft release with the configured targets will be created.
```
git tag v0.1
git push origin v0.1
```After a draft release is created, make your final changes from the release page and publish it.