merlin

module
v0.0.0-...-3786997 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 10, 2023 License: Apache-2.0

README

Merlin

Banner!

GoDoc Go Report Card Version Lines Of Code GitHub Super-Linter Discord

Merlin is a fair-launched, customizable automated market maker for interchain assets that allows the creation and management of non-custodial, self-balancing, interchain token index similar to one of Balancer.

Inspired by Balancer and Sunny Aggarwal's 'DAOfying Uniswap Automated Market Maker Pools', the goal for Merlin is to provide the best-in-class tools that extend the use of AMMs within the Cmers ecosystem beyond traditional token swap-type use cases. Bonding curves, while have found its primary use case in decentralized exchange mechanisms, its potential use case can be further extended through the customizability that Merlin offers. Through the customizability offered by Merlin such as custom-curve AMMs, dynamic adjustments of swap fees, multi-token liquidity pools--the AMM can offer decentralized formation of token fundraisers, interchain staking, options market, and more for the Cmers ecosystem.

Whereas most Cmers zones have focused their incentive scheme on the delegators, Merlin attempts to align the interests of multiple stakeholders of the ecosystem such as LPs, DAO members, as well as delegators. One mechanism that is introduced is how staked liquidity providers have sovereign ownership over their pools, and through the pool governance process allow them to adjust the parameters depending on the pool's competition and market conditions. Merlin is a sovereign Cmers zone that derives its sovereignty not only from its application-specific blockchain architecture but also the collective sovereignty of the LPs that has aligned interest to different tokens that they are providing liquidity for.

System Requirements

This system spec has been tested by many users and validators and found to be comfortable:

  • Quad Core or larger AMD or Intel (amd64) CPU
    • ARM CPUs like the Apple M1 are not supported at this time.
  • 64GB RAM (A lot can be in swap)
  • 1TB NVMe Storage
  • 100MBPS bidirectional internet connection

You can run Merlin on lower-spec hardware for each component, but you may find that it is not highly performant or prone to crashing.

Documentation

For the most up to date documentation please visit docs.merlin.zone

Joining the Mainnet

Please visit the official instructions on how to join the Mainnet here.

Thank you for supporting a healthy blockchain network and community by running an Merlin node!

Contributing

The contributing guide for Merlin explains the branching structure, how to use the SDK fork, and how to make / test updates to SDK branches.

Directories

Path Synopsis
app
params
Package params defines the simulation parameters in the simapp.
Package params defines the simulation parameters in the simapp.
upgrades/v8/constants
package v8constants contains constants related to the v8 upgrade.
package v8constants contains constants related to the v8 upgrade.
client
cmd
simulation
executor
Package simulation implements a full fledged Cmers SDK application used for executing simulation test suites.
Package simulation implements a full fledged Cmers SDK application used for executing simulation test suites.
simtypes/simlogger
This package is a hack.
This package is a hack.
tests
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
x
concentrated-liquidity/types
Package types is a reverse proxy.
Package types is a reverse proxy.
downtime-detector/client/queryproto
Package queryproto is a reverse proxy.
Package queryproto is a reverse proxy.
epochs/types
Package types translates gRPC into RESTful JSON APIs.
Package types translates gRPC into RESTful JSON APIs.
gamm/pool-models/balancer
Package balancer implements weighted constant product AMMs, satisfying the AMM pool interface from x/gamm/types.
Package balancer implements weighted constant product AMMs, satisfying the AMM pool interface from x/gamm/types.
gamm/types
Package types is a reverse proxy.
Package types is a reverse proxy.
gamm/v2types
Package v2types is a reverse proxy.
Package v2types is a reverse proxy.
ibc-rate-limit/types
Package types is a reverse proxy.
Package types is a reverse proxy.
incentives
Incentives module provides general interface to give yield to stakers.
Incentives module provides general interface to give yield to stakers.
incentives/types
Package types is a reverse proxy.
Package types is a reverse proxy.
lockup/types
Package types is a reverse proxy.
Package types is a reverse proxy.
mint
The `mint` module is responsible for creating tokens in a flexible way to reward validators, incentivize providing pool liquidity, provide funds for Merlin governance, and pay developers to maintain and improve Merlin.
The `mint` module is responsible for creating tokens in a flexible way to reward validators, incentivize providing pool liquidity, provide funds for Merlin governance, and pay developers to maintain and improve Merlin.
mint/types
Package types is a reverse proxy.
Package types is a reverse proxy.
pool-incentives
The `pool-incentives` module automatically creates individual gauges in the `incentives` module for every lock duration that exists in that pool.
The `pool-incentives` module automatically creates individual gauges in the `incentives` module for every lock duration that exists in that pool.
pool-incentives/types
Package types is a reverse proxy.
Package types is a reverse proxy.
poolmanager/client/queryproto
Package queryproto is a reverse proxy.
Package queryproto is a reverse proxy.
protorev/types
Package types is a reverse proxy.
Package types is a reverse proxy.
superfluid
The superfluid module handles all logic in relation to the superfluid staking feature on Merlin.
The superfluid module handles all logic in relation to the superfluid staking feature on Merlin.
superfluid/types
Package types is a reverse proxy.
Package types is a reverse proxy.
tokenfactory
The tokenfactory module allows any account to create a new token with the name `factory/{creator address}/{subdenom}`.
The tokenfactory module allows any account to create a new token with the name `factory/{creator address}/{subdenom}`.
tokenfactory/types
Package types is a reverse proxy.
Package types is a reverse proxy.
twap/client/queryproto
Package queryproto is a reverse proxy.
Package queryproto is a reverse proxy.
txfees
The txfees modules allows nodes to easily support many tokens for usage as txfees, while letting node operators only specify their tx fee parameters for a single "base" asset.
The txfees modules allows nodes to easily support many tokens for usage as txfees, while letting node operators only specify their tx fee parameters for a single "base" asset.
txfees/types
Package types is a reverse proxy.
Package types is a reverse proxy.
valset-pref/client/queryproto
Package queryproto is a reverse proxy.
Package queryproto is a reverse proxy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL