Astroport Litepaper

Astroport
32 min readSep 10, 2021

--

Astroport is the central space station of the Terra solar system, where travelers from all over the galaxy (Mirrans, Terrans, Anchorians, and more) meet to trustlessly exchange assets. As a galactic public good, Astroport will be governed by the Astral Assembly, a council of cryptonauts representing all corners of the universe.

The design philosophy behind Astroport is simple: to enable decentralised, non-custodial liquidity and price discovery for any asset. To achieve this, Astroport prioritises flexibility above all else; combining various specialised pool types and routing seamlessly across them.

Astroport has been developed through a joint venture of builders made up of Delphi Labs, We3 , Attic Lab and Terraform Labs (the “Astroport Joint Venture”). The Astroport Joint Venture will deploy the initial Astroport smart contracts, Astroport web application and ASTRO tokens described in this Litepaper. See below under “Token Economics (ASTRO)” — “ASTRO Supply and Distribution” for some important additional context regarding the Astroport Joint Venture.

IMPORTANT: This paper is subject to, and should be interpreted in light of, important disclaimers which appear at the end of this paper. Please carefully review those disclaimers, use the technology at your own risk, and do not rely on this paper for making any decisions.

NOTE: If you are not already familiar with how AMMs work, you should read the Appendix, “A Primer on AMMs”, which will help you understand the terminology and concepts used in the remainder of this Litepaper.

The most important primitive of any DeFi ecosystem is asset exchange functionality. Automated Market Makers (AMMs) have emerged as the winning architecture to achieve this in a decentralised, non-custodial way. The liquidity and composability an AMM provides is a core building block for a wide range of other DeFi applications from money markets to yield farming. It’s crucial therefore for any DeFi ecosystem to have an excellent AMM at its core in order to thrive.

Compared to the order book architecture prevalent in traditional finance, AMMs trade off flexibility for scalability, decentralisation and composability. While a maker in an order book system has unlimited flexibility in expressing his views on a given asset pair, a liquidity provider (LP) in an AMM is constrained to the algorithm provided by the pool. Different asset combinations and market types have unique properties which LPs are therefore unable to cater to with a one-size-fits-all AMM design.

The Terra DeFi ecosystem is in its infancy but already has a wide variety of assets: cluster tokens, synths, governance tokens, native stablecoins and of course LUNA itself. With the emergence of asset bridges such as IBC, Axelar and Wormhole the diversity will increase as assets from the broader Cosmos, Ethereum and Solana ecosystems become available to Terra dApps.

To cater for this on Ethereum, different pool types have been developed, each with unique trade-offs that lend themselves to certain market types. However this causes fragmentation, decreasing capital efficiency and necessitating higher-level AMM aggregators.

Astroport empowers users to choose different pool types within a single AMM system. We believe this will enable Astroport to become the liquidity hub for the Terra DeFi ecosystem, with the built-in flexibility necessary to support all the asset types of Terra. It has permissionless asset listing, is community-governed and will launch with a non-exclusive, customized web interface we believe will provide best-in-class UI.[1]

Pool Types

Each pool within an AMM system may use a different algorithm for determining token prices based on the ratio of the two tokens in the pool — thus, we refer to these different algorithms as determining different ‘pool types’. As DEXes have matured, many new AMM algorithms have emerged, each with its own set of tradeoffs. Different ‘token markets’ have different properties and characteristics; therefore, different pool types can be more or less appropriate for a particular token market. Choosing the appropriate pool type for a given token market can increase efficiency for both traders and LPs. Some factors that may affect pool type choice for a target token market include:

  1. Pair correlation: How the fair market prices of the two target tokens tend to move relative to one another
  2. Pair volatility: The magnitude and frequency of fair market price fluctuations in the two target tokens
  3. Market locality: Whether there are similar token markets to the target token market, and their sizes relative to the target token market
  4. Market maturity: How well-understood are the values of the two target tokens
  5. Lifecycle stage: Whether the target tokens are are pre- or post-liquidity

Astroport allows for the following pool types, which enable Astroport to accommodate a wide variety of token markets:

  • Constant Product pools
  • Stableswap Invariant pools
  • Liquidity Bootstrapping (LBP) pools

In addition, Astroport has a flexible architecture that allows builders to create new pool types that fit seamlessly within Astroport, with minimal changes to core protocol code.

Constant Product Pools

Constant product pools were pioneered by Bancor[2] and Uniswap[3], and have become popular among decentralised exchanges due to their simplicity and versatility. They are straightforward to create, easy to incentivise, and require minimal active management. Despite their simplicity, constant product pools have proven they can achieve pricing that is competitive with centralised exchanges.

Constant product pools do have disadvantages. LPs are exposed to price risk in the form of impermanent loss[4]; thus, LPs must either receive sufficient fees or other incentives for liquidity-providing activities to be profitable. Additionally, most of the liquidity in constant product pools is not used to facilitate trades under normal conditions[5]. This capital inefficiency leads to relatively high slippage (i.e., difference between expected price and executed price) compared with other pool types.

Still, these pools are a good choice for pairs with high volatility (e.g. mBTC-UST), as they facilitate trading at all possible prices, even during large, sudden market moves. They are also well suited for primary markets, where traders are more likely to speculate and act on external information despite high slippage.

How Constant Product Pools Work

Constant product pools work by keeping their reserves balanced according to the following equation:

Where Rx and Ry are the reserves of token X and token Y respectively, and k is a constant. Any trades that occur will change the values of Rx and Ry, but only in ways that satisfy this equation. If a trader wishes to sell a quantity ∆x of token X, they will receive a quantity ∆y of token Y such that:

See endnote #6

To add liquidity, LPs deposit token X and token Y in a ratio that matches the current price (Rx / Ry). The added liquidity increases the value of k. Intuitively, with more liquidity present in the reserves, traders will receive a larger output (∆y) for a given input (∆x)[7]. In this way, increased liquidity reduces slippage for traders.

Stableswap Invariant Pools

We have seen above how adding increased liquidity to constant product AMMs can help reduce slippage. There are some situations, however, where the amount of liquidity required to provide reasonably low slippage for traders is infeasible. For example, this is the case for pairs of tokens with an exchange rate that rarely deviates from 1:1.

Dollar-pegged stablecoins are the primary example of this. When exchanging one type of stablecoin for another, traders expect exchange rates close to 1:1 since these tokens are designed to represent the same value (one dollar). Exchanging one type of stablecoin for another is extremely common, so lowering slippage on these types of trades is a valuable piece of market infrastructure. Other examples of these types of “stable pairs” include various wrapped, synthetic, or staked versions of the same underlying assets (e.g. bLUNA-LUNA).

Stableswap AMMs were first introduced by Curve Finance[8]. By modifying the underlying swap formula, stableswap AMMs “amplify” liquidity around the 1:1 exchange rate, resulting in drastically reduced slippage. Therefore, stableswap AMMs are much more capital-efficient than their constant product counterparts, since most of this amplified liquidity is used to facilitate trades.

There is a tradeoff, however — these types of AMMs produce worse slippage if the exchange rate deviates too far from equilibrium. Therefore, they are most suitable for ‘stable’ pairs, where each token is meant to represent the same underlying value.

How Stableswap Invariant Pools Work

Stableswap pools achieve a middle ground between constant product pools and constant price pools. A constant price pool is similar to a constant product pool, but uses a constant sum formula Rx+Ry=k, resulting in a constant price ∆x / ∆y = 1.

The stableswap invariant algorithm uses an amplification parameter A that determines how close the stableswap curve should be to the constant product curve; an amplification value of 0 (A = 0) achieves results identical to the constant product pool algorithm; higher values of A push the curve closer to the constant price curve, resulting in lower slippage for exchange rates close to 1:1.

Constant price, constant product, and stableswap invariant curves

The formula for the stableswap invariant works by combining terms representing the constant product and constant sum formulas. Using the constant D to represent the total number of tokens in the pool when token X and token Y have equal price, and A to represent the amplification parameter, the formula for a pool of two tokens X and Y can be written as:

(See endnote #9)

Liquidity Bootstrapping Pools

Users face a unique challenge when creating a market for a new token. With a constant product pool, they must choose a price at which to provide their initial liquidity. If this price is too low, early traders and bots have a significant advantage, which leads to network congestion and market manipulation. If this price is too high, they must supply a large amount of capital to the pool and also risk having too few buyers and low token float.

Liquidity bootstrapping pools are a great way to address these issues when providing initial liquidity for a token. Popularized by Balancer,[10] LBPs work by adjusting the ‘weight’ of the two tokens in the pool. A weighted pool allows for a high initial price but requires minimal up-front capital. By programmatically adjusting this weight over time, the price is slowly lowered — spreading the price discovery process over a longer period as participants wait for a fair price to buy. Front-running by bots and other market manipulators is therefore disincentivised.

How Liquidity Bootstrapping Pools Work

For a given balance of reserves Rx and Ry, increasing Wx results in a higher price (∆x / ∆y) for token X. A higher weight Wx also means an LP would need to deposit less of token Y for a given amount of token X.

Liquidity bootstrapping pools alter the weights Wx and Wy over time such that one of the tokens begins with a high price, and gradually decreases over time. The shifting weights results in constant downward price pressure until the final weights are reached at the end of the time period.

The following is a real-world example of a liquidity bootstrapping pool for the PERP token[11], which launched on the Ethereum network in September 2020. The weights were set to begin at Wx=90%, Wy=10%, and change linearly until Wx=30%, Wy=70% over a period of 72 hours:

The above weights would have resulted in the following prices over time in the absence of any trading activity:

Buying or selling activity alters the reserves, and, therefore, the price, as separate from the constantly changing weights. The actual price of the PERP token during its 72-hour LBP, inclusive of both changing weights and buy/sell activity, is shown below:

Note: Although the Astroport protocol includes code for LBPs, projects wishing to run an LBP will be required to deploy the relevant smart contracts and associated front-end independently.

Dual Governance Token Distribution with ASTRO Generators

Today, most DeFi protocols are partly or fully controlled by governance tokens with the power to vote on parameter changes, protocol upgrades, use of treasury funds, distributions of unallocated governance tokens, and other matters relevant to the communities surrounding those protocols.

Since liquidity providers play a key expert role in AMMs, many DeFi protocol communities logically seek to place governance power into the hands of AMM liquidity providers who are serving those respective communities — an important method for which is “liquidity mining” or “farming” with LP tokens (see more in the “Liquidity Mining” appendix below). Likewise, the Astroport protocol will have its own governance token, ASTRO, which will also be distributed to LPs through liquidity mining. ASTRO for liquidity mining will be ‘emitted’ at a predetermined rate from the Astral Assembly. Distribution weighting will be determined by the Astral Assembly in accordance with “boosties”. For more on these topics, see below under “Token Economics (ASTRO)”

Dual Liquidity Mining with ASTRO Generators

Because LPs stand to receive different governance tokens both from the Astroport protocol and (on a pool-specific basis) from extrinsic DeFi communities, they often face a difficult decision of where to focus their “liquidity mining” efforts. Astroport addresses this with special, proxy-based smart contracts — ASTRO Generators — that enable simultaneous “dual farming” of ASTRO tokens and the governance tokens of any other community seeking to distribute its governance token to LPs for a specific pool.

Rather than depositing their Astroport-LP tokens in the third-party staking contract directly, LPs can deposit their Astroport LP-tokens into one of Astroport’s ASTRO Generators. Through a proxy contract architecture, the ASTRO Generators forward the LP tokens into the relevant third-party staking contract. Because the user is liquidity mining on third-party contracts through an ASTRO Generator, the same LP-tokens can be tracked both by those third-party contracts and Astroport. Therefore, LPs accrue both sets of grants (both ASTRO and the third-party protocol tokens). When an LP wishes to claim these granted tokens, (1) the ASTRO generator transfers the appropriate amount of ASTRO to the LP, and (2) the proxy contract claims the third-party tokens due to the LP and transfers them as well.

This dual distribution model has a number of advantages. First, this architecture minimizes the development and operational requirements for third-party protocols. Rewards are enabled with the simple proxy contract; they need not alter their own governance token staking contracts or frontends. In addition, LPs who continue to stake directly in the third-party protocol’s staking contracts will continue to receive those granted tokens, and may remain there if they so choose.

Astroport Value Flow

Trading Fees & Assembly Funding

A fee is charged on all trades made through the Astroport pools and is paid by traders in the respective native pool tokens. This fee is embedded in the Astroport smart contracts and is subject to adjustment by the Astral Assembly. The flow of such fees through the Astroport ecosystem is illustrated and summarized below:

For constant product pools, this fee will initially be 0.3%, divided as follows:

  • a 0.2% fee (2/3rds of the total fee) paid to the LPs for the relevant pool — this remains denominated in the native pool tokens and acts as a payment by increasing the size of the pools (thus increasing the number of tokens that LPs can redeem when they remove liquidity); and
  • a 0.1% fee (1/3rd of the total fee) paid to the Astral Assembly — this is used to automatically purchase ASTRO from ASTRO liquidity pools; the purchased ASTRO is then deposited into the xASTRO and vxASTRO staking pools in accordance with a ratio set by the Astral Assembly (initially 50/50) — see below under “Token Economics (ASTRO)

For stableswap invariant pools, this fee will initially be 0.05%, divided as follows:

  • a 0.025% fee (½ of the total fee) paid to the LPs for the relevant pool, in the same manner as described above for constant product pools
  • a 0.025% fee (½ of the total fee) paid to the Astral Assembly, in the same manner as described above for constant product pools.

Since LBP pools will be independent deployments of Astroport code, trading fees for LBP pools will be set at the discretion of the deployers, and the Astral Assembly will not receive a portion of such fees the way it does for other types of pools.

Oracles

A price oracle is an on-chain mechanism that can provide smart contracts with real-time price information. Oracles are required for many DeFi protocols to function properly — for example, pegged assets and their associated debt positions, synthetic assets, and money markets all rely on real-time price oracles to ensure system solvency.

AMMs are convenient sources of price information for oracles, since trades and reserve values are already present on chain. Instantaneous price information can be obtained from AMMs by simply calculating the amount of reserves present for each token. However, this instantaneous price is susceptible to manipulation, and has shown to be a potent attack surface for economic smart contract exploits.

To combat these exploits, time-weighted average prices (TWAPs) are effective at providing close to real-time price information, while making manipulation far more expensive for potential exploiters. Astroport has implemented TWAP price accumulators in its constant product and stableswap pools, similar to those present in Uniswap v2.[12] These accumulators allow third parties to construct Oracle contracts that create price feeds by filtering data about Astroport pools with customized TWAP lengths or windowing mechanisms.

NOTE: The Astral Assembly will not be activated until at least 60 days after the launch of Astroport. See below under “ASTRO Supply and Distribution”.

Astroport will be governed by the Astral Assembly, which is Astroport’s version of a ‘Decentralised Autonomous Organization (Astral Assembly)’. The Astral Assembly’s goal is the operation, maintenance, development and growth of Astroport as a user-governed DeFi commons. xASTRO holders will have the power to propose and make binding votes on smart contract parameter changes, smart contract upgrades and treasury disbursements; furthermore, xASTRO could be used to vote on a non-binding / advisory basis on other matters relevant to the Astroport community.

To ensure sufficient decentralization, Astroport’s governance control cannot rest in the hands of a small number of contributors. Rather than giving multisig signers full control of the protocol’s treasury and the ability to implement smart contract upgrades, Astroport will put governance in the hands of xASTRO holders (which, based on the distribution plan for ASTRO, should be a close approximation to governance by Astroport users and builders).

Since Terra utilizes the Cosmos Software Development Kit (SDK), the protocol will be built with CosmWasm smart contracts that can only be upgraded by the contract’s owner address. Astroport’s owner address will be the governance contract itself. That means that xASTRO holders must approve all upgrades to the original Astroport smart contract on Terra (and its governance-approved successors) and Astral Assembly treasury disbursement on the Terra blockchain. Upon approval, the upgrades or disbursement will be autonomously executed. Since this process will be open and transparent, it should be very difficult to approve malicious or unsecure upgrades.

Intro to ASTRO Economics

The ASTRO token lies at the heart of the Astroport ecosystem, helping coordinate and align incentives of all stakeholders involved. The tokenomics summarized here define how ASTRO will be used within the Astroport ecosystem as well as how it will be distributed.

Astroport is designed to become a digital commons that is owned, controlled, operated, maintained and updated by the community of its users and builders. ASTRO is designed to be the tool for distributing the value of and power over the Astroport protocol/code (‘protocol equity’), as well as the value of and power over any particular operational instance of the code (i.e., a specific copy of the Astroport code constituting a specific “smart contract” on a specific blockchain network) (‘network equity’). ASTRO only works that way if the Astroport builders and users who receive ASTRO learn to use ASTRO as a community mechanism, developing social understandings that give ASTRO meaning and value. Although the ultimate powers and purposes of ASTRO are thus aspirational and beyond any single party’s control, we have sought to give ASTRO economic and technological design features that will encourage the Astroport community to use it in this way.

A good way to illustrate how Astroport governance should work and the importance of ASTRO is with an analogy. Think of the initial Astroport builders as being like a group of volunteers who design/blueprint a space station (=smart contract code), build and launch the spaceship into orbit (=deploying the Astroport smart contracts to Terra), and open-source the space-station blueprints (=making the Astroport code free open-source software). As people start moving into the space station and claiming their own space-station quarters (liquidity providers and traders using the Astroport smart contracts), they discover that each space comes equipped with a special generator (the ASTRO Generator). Every day, the generator spits out ASTRO, Astroport’s primary resource which gives its holders the ability to join the illustrious Astral Assembly: Astroport’s governing body which has ultimate power over Astroport, including adjusting the space station settings (including the rate and distribution of the ASTRO generators themselves), building new sections of the space station, and sharing in the revenues from the space station. Residents who wish to join the assembly must stake their ASTRO, demonstrating their long-term commitment to Astroport and receiving influence proportional to this commitment. Over time, the ASTRO Generator serves to distribute the power over and value of Astroport to its most committed residents

The hope is that by making the space station residents into the space station ‘owners’ (making Astroport users the governors and beneficiaries of Astroport) the residents will also be incentivised to maintain and improve the space station (Astroport code, smart contracts and community) in the future — for the benefit of themselves and their fellow residents (users), all living together in the space station (using Astroport together). Achieving these goals requires minimizing “tragedy of the commons” effects by designing the space station ownership rights properly (designing ASTRO tokenomics); otherwise, the space station inhabitants will just use and abuse the station until it malfunctions, decays and starts turning into space junk; then they all have to move elsewhere — a “tragedy”.

Fee Distribution to the Astral Assembly

As discussed above (“How Astroport Works — Astroport Value Flow — Trading Fees and Assembly Funding”), the Astroport smart contracts collect trading fees, a portion of which go to the ASTRO stakers who collectively make up the Astral Assembly. The Assembly’s allocation of fee awards is intrinsically linked to ASTRO tokens via staking (see below) and establishes the foundation for Astroport becoming a self-sustaining, community-governed ecosystem.

ASTRO Staking and Locking

ASTRO holders will be able to use ASTRO in two ways to assume governance responsibility over Astroport:

  • Staking ASTRO in the xASTRO pool: ASTRO holders may stake their ASTRO in the xASTRO pool to receive xASTRO tokens, activate their governance power and accrue a share of trading fees (funded with one-half of the Astral Assembly’s share of trading fees). xASTRO is inspired by SushiSwap’s xSUSHI token / xSUSHI pool.
  • Locking xASTRO in the vxASTRO pool: xASTRO holders may lock their xASTRO in the vxASTRO pool to receive vxASTRO points, amplify their governance power, receive an additional share of trading fees (funded with the other half of the Astral Assembly’s share of trading fees) and access other benefits such as boosted liquidity mining rewards (see below under “vxAstro Utility”). vxASTRO is inspired by Curve’s pioneering veCRV model.

Upon activation of the Astral Assembly 60–90 days following the Astroport AMM launch, ASTRO holders will be able to join the xASTRO pool by staking ASTRO tokens in exchange for xASTRO, which represents their share of the Astral Assembly’s xASTRO pool. xASTRO will be a transferable, yield-bearing token that rewards ASTRO stakers with additional ASTRO that are paid into the system as fees and periodically deposited into the xASTRO pool. Accordingly, as time passes, each xASTRO token will be worth more ASTRO, increasing the governance power of those who show their commitment to Astroport governance by staking.

To join the Astral Assembly’s vxASTRO pool, users must hold xASTRO. This xASTRO can be locked into the vxASTRO pool for varying durations up to 2 years. The longer the lockup, the higher the amount of vxASTRO the user will receive. vxASTRO are non-transferable; accordingly, you can think of them as similar to governance power ‘points’ or credits rather than ordinary ‘tokens’.

The following is an example for a user locking 100 xASTRO into the Astral Assembly’s vxASTRO pool:

  • If locked for 2 years the user would receive 200 vxASTRO.
  • If locked for 1 year the user would receive 100 vxASTRO.
  • If locked for 1 month the user would receive 8.3 vxASTRO.

The more vxASTRO a user controls, the greater their say in ASTRO-based governance processes.

The amount of vxASTRO a user has will decrease linearly over the length of the selected lockup period, such that at the end of the lockup period the user has 0 vxASTRO (see Figure 4). At any given point in time a user will be able to extend their lockup for up to the maximum of 2 years from the date they initially locked their xASTRO. Keep in mind that as a user’s vxASTRO allotment declines, they will still hold the underlying xASTRO so they can continue to collect fees and participate in governance (albeit at a reduced rate vs. locking xASTRO for vxASTRO).

vxASTRO Locking Dynamics Example.

This mechanism should foster a healthy governance system that’s inclusive and at the same time long-term oriented. By allowing xASTRO holders to participate in governance without needing to lock their xASTRO tokens, it removes a potential friction point from the governance process. At the same time, by asymmetrically empowering users who do lock their xASTRO tokens, it incentivises long-term-oriented decision-making and participation. Smaller but higher-conviction ASTRO holders will be able to amplify their influence vs lower-conviction whales by locking and signalling their commitment to the system.

ASTRO Utility

ASTRO’s utility will materialize via xASTRO and vxASTRO. As mentioned above, each of these tokens entitles their holders to different degrees of fee-sharing and governance power. While the xASTRO token represents one (relatively modest, short-term) level of commitment within the Astroport ecosystem (but still more commitment than simply holding ASTRO) and comes with one (relatively modest) level of governance power and fee-sharing, the vxASTRO token represents a higher level of commitment and thus a higher level of governance power and fee-sharing.

xASTRO Utility

  • Fee-share: xASTRO will be a transferable token that automatically accrues additional ASTRO from the Astral Assembly’s portion of trading fees, pro rata based on the number of xASTRO in existence[13]. While adjustable by ASTRO governance, initially half of the Astral Assembly’s portion of trading fees will accrue to xASTRO holders.
  • Governance: xASTRO holders will be able to vote on and submit proposals to Astroport governance, including incentives allocation voting (more on this in the following section).

vxASTRO Utility

vxASTRO, on the other hand, won’t be tokenized. Instead, vxASTRO can be thought of as points that will allow users to leverage their xASTRO to access additional benefits within the Astroport ecosystem, specifically:

  • Increased governance power: vxASTRO holders will have increased voting power within the Astroport ecosystem. Specifically, the voting power for a given user will be calculated as follows:

where i represents a given user, Locked xASTROi represents the amount of xASTRO the user locked to receive vxASTRO and xASTROi represents any unlocked xASTRO the user might also happen to have.

  • More protocol fees: The other half of the Astral Assembly’s portion of trading fees will be distributed pro rata to all vxASTRO holders based on the number of vxASTRO then in existence. It’s worth noting that, in their capacity as xASTRO holders), vxASTRO holders will also receive some of the Astral Assembly’s portion of trading fees that flow to the xASTRO pool (as by definition they’re also xASTRO holders).
  • ASTRO Generator Boosties: vxASTRO holders who are also Astroport pool LPs mining ASTRO through the ASTRO Generators will receive a boost (from 1x to 2.5x) to their share of ASTRO emissions.. This creates a virtuous cycle in which liquidity providers (which inherently have one form of skin-in-the-game) can receive additional governance power if they also lock xASTRO to become vxASTRO holders, and vxASTRO holders (which inherently have another form of skin-in-the-game) receive additional governance power if they also provide liquidity to pools. The final boost for each LP/vxASTRO holder will depend on several factors, including: the percentage of LPs engaged in ASTRO liquidity mining through the ASTRO Generators, the liquidity provided by the user, which pool(s) the user provided liquidity to, the overall liquidity level(s) of that pool (or those pools), how much vxASTRO the user holds and the total amount of all vxASTRO then in existence. Specifically, for a given user i, the boost will be calculated as follows:

The following figure helps visualize the staking dynamics and the different set of benefits explored in this section and the previous one.

Recalibrating The ASTRO Generator

The ASTRO Generator aims to distribute power over Astroport to its users (i.e. liquidity providers). A healthy DeFi community will constantly recalibrate how to best distribute the power and benefits of its “commons”. Through the voting process, the Astroport community’s most committed governors will be able to influence which users ASTRO is distributed to as well as the magnitude of ASTRO distributed to these users.

Through this mechanism, the community — and especially its most active and long-term oriented participants — get to define which participants have their relative governance power within the Astral Assembly increased and which participants have their relative governance power within the Astral Assembly diluted. This also has the added benefit of encouraging other token-holder communities to become xASTRO or vxASTRO holders, knowing that this will give them a voice in Astroport governance, including the ability to vote in favor of weighting ASTRO Generator rewards towards the liquidity pools for their respective communities’ respective tokens.

The system for governing ASTRO Generator emissions works as follows:

  • Each user has a certain voting power, as defined above under “ASTRO Utility”.
  • Each voting period lasts for 2 weeks. Users can vote for multiple pools with different weights for each pool.
  • At the end of each voting period, votes are tallied and the weights for the upcoming two weeks are assigned to each pool in proportion to the votes cast in favor of such pool during that voting period. Thus, the xASTRO and and vxASTRO votes in each two-week voting period decide the ASTRO Generator emission weighting for the upcoming 2 week-period.
  • Once a user votes on a certain weighting for a certain period, that vote will remain ‘active’ from that point onwards. This means a user who wishes to keep voting the same way doesn’t need to repeat the process every 2 weeks (and, conversely, that a user who wishes to vote a different way, or abstain from voting, must proactively change their vote from the current default).

ASTRO Supply and Distribution

There will be a maximum supply of one billion ASTRO tokens (the “ASTRO Supply”), to be allocated as illustrated in the below chart and further summarized below.

  • 49% of the ASTRO Supply to liquidity providers (LPs) through ASTRO Generator emissions [Subject to adjustment by the ASTRO Assembly]. 100 million of these ASTRO tokens (10% of the total ASTRO Supply) will be distributed through the ASTRO Generator during the the first 12 months of ASTRO Generator emissions; and on each anniversary of the ASTRO Generator launch date, the ASTRO Generator emissions rate will drop by ~20%, until eventually there are no more ASTRO to be emitted through the ASTRO Generator (approximately 69 years from now). Learn more here.
  • 10% of the ASTRO Supply to the Astroport DAO Pool or ‘Astral Assembly’ as a ‘community reserve’ to be used for the benefit of the Astroport ecosystem (for example, funding grants to developers who can create or maintain interfaces to the Astroport smart contracts upgrade or patch the Astroport code or fork Astroport to other blockchains). These ASTRO will be provided to the Astral Assembly in a single transaction at or about the time of the Astroport launch (rather than being emitted to the Astral Assembly over time).
  • 7.5% of the ASTRO Supply to Terraswap LPs who migrate Terraswap LP tokens from Terraswap to Astroport for a user-selected trial period in a ‘lockdrop.’
  • 2.5% of the ASTRO Supply to miscellaneous Terra ecosystem participants.
  • 1% of the ASTRO Supply to the ASTRO-UST Liquidity Bootstrapping Pool (or LBA) to act as a price discovery phase for ASTRO tokens — which really means they will act as a value discovery for Astroport governance.
  • 30% of the ASTRO Supply to the Builder Token Lockup. Such ASTRO grants to Astroport’s initial builders will be subject to: Restrictions for up to three years on transferability of the granted ASTRO. See here for more details on the ASTRO builder allocation.

IMPORTANT: Eligibility for the ASTRO airdrop will be measured by snapshotting on-chain activity that occurred prior to the publication of this Litepaper. Accordingly, you should not use third-party systems or engage in other activities for the purpose of receiving the ASTRO airdrop; there is nothing you can do now to receive additional ASTRO, other than using Astroport or acquiring ASTRO from others after the Astrport launch.

NOTE: There will be a grace period of at least 60 days between the Astroport launch and the activation of the Astral Assembly. This grace period will allow for sufficient distribution of the token amongst airdrop recipients and other token holders.

IMPORTANT: Consistent with the goals of community governance described in this Litepaper, after the public launch of Astroport, the Astroport Joint Venture should not be expected to have a material ongoing role in Astroport maintenance, research, development or promotion; nor does the Astroport Joint Venture plan to raise Astroport-related funding after the Astroport launch date. The Astroport Joint Venture may, in its sole and absolute discretion, elect to undertake limited ministerial activities directly or indirectly related to Astroport, such as maintaining availability of the Astroport web interface originally created by the Astroport Joint Venture, but no promise, guarantee or assurance of such ministerial efforts or any other efforts is being made, and the Astroport Joint Venture may abandon them at any time. The Astroport Joint Venture has no long-term business or funding plan after launching Astroport, and may cease operations or be wound-up, liquidated or dissolved by its members at any time. The Astroport Joint Venture is not making any representation, promise, guarantee or assurance that any ASTRO it retains for itself or reclaims from grantees or any funding or resources it otherwise has or obtains will be held, used or spent for the benefit of the Astroport community. Any sale or other transfer or distribution of ASTRO tokens by the Astroport Joint Venture could occur without warning. Any such transaction would increase the circulating supply of ASTRO tokens. Depending on the number of ASTRO sold, transferred or distributed, the terms of sale, transfer or distribution and the prevailing market conditions, such a sale, transfer or other distribution could have a material adverse effect on the price or value of, or demand for, ASTRO tokens. Any use of ASTRO by the Astroport Joint Venture or any of its participants to stake for xASTRO or vxASTRO and vote in the Astral Assembly could also affect governance outcomes. The Astroport Joint Venture is not promising to participate in governance or, if it does participate in governance, to vote in any particular way, and participants in the Astroport Joint Venture who receive ASTRO may exercise their own governance powers in their own independent discretion. As a result of the foregoing factors, there could be disputes, disagreements or a lack of coordination among the Astroport Joint Venture and its participants., which may affect governance results.

While we believe Astroport will be an important addition to the Terra ecosystem, there are challenges ahead which we invite future contributors to help solve.

Concentrated liquidity and additional pool types

While different pool types significantly mitigate the inflexibility problem of AMM pools, they remain less flexible than traditional order book designs. Innovative pool types such as Uniswap V3’s concentrated liquidity design have been successful in further mitigating this problem, and could perhaps be integrated into Astroport.

Cross-chain

Some bridges such as Wormhole’s v2 enable arbitrary messaging between smart contracts on different chains. This raises the possibility for users operating on other chains to seamlessly interact with Astroport. They could then deposit, withdraw, or swap without needing to first move assets to Terra or even have TerraStation installed.

Contributors with relevant expertise could propose and implement an architecture to add this functionality to a future Astroport version.

Governance

Astroport’s first version has been created by several independent groups of contributors and will become fully community owned and governed once ASTRO’s distribution is sufficiently broad.

Governance designs for decentralised projects is a fast moving and experimental space as embodied by new initiatives such as Yearn’s gov v2 proposal. Astroport may benefit from a similar system where token holders retain full control but if they wish are able to delegate powers to specialised groups. We invite the community and potential contributors to research and discuss.

We have designed Astroport with the ambition of making it the most flexible and durable AMM system in DeFi, featuring support for multiple pool types, permissionless asset listing, a powerful incentive structure and wide distribution of Astroport’s value and governance to Astroport’s most active and responsible users and builders. With these design principles in mind, we have every hope of Astroport becoming the go-to launchpad for space travel in the Terra DeFi universe, hosting all manner of happily token-swapping cryptonauts for many eons to come.

IMPORTANT DISCLAIMERS:

Authorship of this Paper. This paper has been authored by the unincorporated joint venture developing the Astroport technologies (the ‘Astroport Joint Venture’) and is subject to the Astroport Medium Disclaimers.

This paper is only a presentation of information, ideas and speculation regarding possible technologies, the possible uses of those technologies and a possible community of users and builders of those technologies. The statements contained in this paper do not provide any advice, representation, warranty, certification, guarantee or promise relating to these technologies, any uses thereof or any of the other matters discussed in this paper, nor does this paper provide an offer or agreement to make such technologies available, maintain or update such technologies, or sell or buy any asset or enter into any transaction. This paper and the matters described in this paper have not been reviewed, approved, endorsed or registered with any regulator or other governmental entity, and the authors of this paper are not licensed by any regulator or other authority to provide any legal, financial, accounting, investment or other advice or services. The forward-looking statements in this paper are subject to numerous assumptions, risks and uncertainties, and thus the events described or predicted therein are subject to change or to fail to occur in accordance therewith. We undertake no obligation to update, supplement or amend any statement that becomes inaccurate or incomplete after the date on which this paper is first published, or to alert the public as to any such inaccuracy or incompleteness, whether such inaccuracy or incompleteness arises as a result of new information we receive, changes of our plans, unanticipated events or otherwise. The technologies and assets described in this paper are highly experimental and risky, have uncertain and potentially volatile value, and should be directly evaluated by experts in blockchain technologies before use. Use them solely at your own risk. You should not rely on this paper as a basis for making any financial or other decision.

APPENDIX

A Primer on AMMs

AMM Architecture

AMMs are token exchange protocols implemented in the form of “smart contract” software code that is stored and operated on computation-friendly peer-to-peer blockchain network systems. Famous examples of AMMs on Ethereum include Bancor, Uniswap and SushiSwap.

AMM users can create different token exchange “pools” within the AMM, with each pool being defined by a pair of tokens that trade against each other. For example, a “LUNA/UST” pool is an AMM pool in which LUNA and UST tokens have been deposited. The relative ratio of the two tokens within the pool, together with the algorithm defined by the AMM smart contract, implies a ‘price’ for each token, denominated in terms of the other token. This enables other users — in effect, buyers and sellers — to purchase either of the paired tokens with the other token at a particular implied price. For example, a user can purchase UST from the LUNA/UST pool by depositing the algorithmically determined LUNA price of UST, or can purchase LUNA from the LUNA/UST pool by depositing the algorithmically determined UST price of LUNA.

The ‘market-making’ effect of AMMs is an emergent phenomenon arising from the independent activities of ‘liquidity providers’ (LPs) ‘arbitrageurs’ and the algorithm for the pool. Users who simultaneously deposit both of the pair tokens into the pool in the proper ratio are referred to as “liquidity providers” (LPs) and are necessary to get the pool started and maintain liquidity. Although the algorithmic price is theoretically arbitrary, over time it will tend to match or be very close to the independent fair market price of each asset — this occurs because any material deviation of the algorithmic price from the fair market price will create a profitable opportunity for arbitrageurs to trade tokens between the AMM pool and other independent sources (such as centralised exchanges (CEXs) or other decentralised exchanges (DEXs)); during a deviation, these arbitrageurs will profitably modify the ratio of the two pool tokens (in effect, acting as a specialized type of liquidity provider) to bring the algorithmically determined ‘AMM price’ closer to the ‘fair market price’. Thus, it is the combination of independent actions on the part of liquidity providers, arbitrageurs and an appropriately selected algorithm that ‘automatically’ ‘makes markets’ for the tokens; in practice, even more aspects of the system are automated, since liquidity providers and arbitrageurs may act through ‘bots’ governed by independently designed third-party algorithms.

Two other important points:

  • AMM liquidity providers typically receive transferable tokens called “LP tokens” representing their shares of each pool they are ‘LP-ing’ to. This helps make AMM architecture composable — e.g., by facilitating “liquidity mining” or “farming” for third-party protocols (see above, “How Astroport Works — ASTRO Emission; Dual Governance Token Distribution with ASTRO Generators).
  • Traders (people who sell one pair-token into a pool to get the other pair-token from that pool) typically pay trading fees, which helps make LP-ing a potentially profitable endeavor (depending on the individual skill of each LP). In Astroport, like some other AMMs, these trading fees are split between Astroport LPs and the Astral Assembly. .

Liquidity Mining

Since liquidity providers play a key expert role in AMMs, many DeFi protocol communities logically seek to place governance power into the hands of AMM liquidity providers who are serving those respective communities. For example, the Mirror protocol on Terra currently distributes MIR tokens to LPs for the MIR/UST token pair. This process is sometimes referred to as “mining” governance tokens via proof-of-liquidity (“liquidity mining”) or as “farming” governance tokens. As with other AMMs, we anticipate that third-party DeFi protocol communities will utilize Astroport’s LP-token feature to enable relevant Astroport LPs to receive governance tokens from those communities. For example, the Mirror community could reward users who provide liquidity to the Astroport MIR/UST pool; this would be accomplished by the Mirror community deploying a smart contract where Astroport MIR/UST LP-tokens can be staked to receive pro rata distributions of MIR.

Simultaneously, there is another governance token distribution trend in DeFi — namely, for AMMs themselves to have their own governance tokens. For example, the governance token for Uniswap is UNI, the governance token for Sushiswap is SUSHI, and the governance token for Curve is CRV. AMM communities tend to distribute the AMM governance token in large part to persons who act as LPs to pools on that AMM. This makes sense because AMMs are intended to serve as digital commons that enable expert LPs to run their own competitive businesses on the AMM — similar to how Bitcoin miners run their own competitive businesses on Bitcoin. Thus, LPs are a special, expert class of B2P (business-to-protocol) users; giving such LPs governance power over the protocol is analogous to a traditional B2B business creating a tight feedback loop with its enterprise customers (except that LPs as a class can have even more power over the protocol than the typical enterprise customer has over a traditional business counterparty).

Endnotes

1. Note: Because Astroport is a system of smart contracts on Terra, it is permissionlessly accessible. Therefore, no specific web site or other interface is essential to use of Astroport. We expect users will interact with Astroport from a variety of existing and future third-party general-purpose Terra interfaces (such as the Terra blockchain client), third-party instances of the initial Astroport UI (which will be free open source software) and potentially other community-built interfaces.

2. https://storage.googleapis.com/website-bancor/2018/04/01ba8253-bancor_protocol_whitepaper_en.pdf

3. https://uniswap.org/whitepaper.pdf

4. https://pintail.medium.com/uniswap-a-good-deal-for-liquidity-providers-104c0b6816f2

5. https://uniswap.org/whitepaper-v3.pdf

6. https://twitter.com/danrobinson/status/1429972775511408651

7. https://web.stanford.edu/~guillean/papers/uniswap_analysis.pdf

8. https://curve.fi/

9. https://curve.fi/files/stableswap-paper.pdf

10. https://balancer.fi/

11. Everything you need to know about the first liquidity bootstrapping pool (LBP)

12. https://docs.uniswap.org/protocol/V2/concepts/core-concepts/oracles

13. Fees generated by liquidity bootstrap pools are excluded from xASTRO value accrual.

--

--

Astroport
Astroport

Written by Astroport

An automated, decentralised exchange protocol on the Terra blockchain. http://astroport.fi

Responses (3)