ArrowDAO

Tokens

ArrowDAO has one asset in three forms. Moving between them is free apart from gas, and none of the conversions change what your position is worth.

| Token | Decimals | Balance behaviour | Use it for | | --- | --- | --- | --- | | ARW | 9 | Static | Trading, bonding, redeeming | | sARW | 9 | Rebases up each epoch | Staking | | gARW | 18 | Static; index rises | DeFi, bridging, accounting |

ARW

The base token. Nine decimals, standard ERC-20, minted only by the treasury against reserves it holds. Its mint function is gated on the vault role in ArrowAuthority, which the treasury holds — no other contract can create ARW.

ARW itself does not earn anything. Holding it unstaked while rebases are running means your share of supply falls with every epoch.

sARW

Staked ARW. Minted one-for-one when you stake and burned one-for-one when you unstake.

sARW is a rebasing token: it stores balances internally as a fixed number of "gons" and divides by a supply-wide index to produce the balance you see. When the staking contract rebases, that index changes and every holder's visible balance grows at once. Nobody has to claim anything, and no transaction is required to compound.

The consequence is that balanceOf returns a different number over time for the same position. Anything that caches a balance, or that assumes the sum of balances is constant, will misbehave. That is what gARW is for.

gARW

Wrapped sARW, at eighteen decimals. Wrapping burns sARW and mints gARW at the current index; unwrapping does the reverse.

A gARW balance never changes on its own. Instead, the amount of sARW each gARW is worth rises as the index rises. Since the index only ever increases, one gARW is always worth at least as much sARW as it was when you wrapped it.

Use gARW when:

  • supplying to an AMM or lending market
  • bridging to another chain
  • holding in a contract, multisig or treasury that reconciles balances
  • doing anything where a balance that changes underneath you is a problem

Converting between them

ARW  --stake-->  sARW  --wrap-->  gARW
ARW  <-unstake-  sARW  <-unwrap-  gARW

Each direction is a single transaction in the app, preceded by an ERC-20 approval the first time. Stake handles the first hop, Wrap the second.

Decimals, carefully

ARW and sARW use 9 decimals. gARW uses 18. This trips people up when reading raw values off a block explorer: a gARW figure that looks a billion times larger than the corresponding sARW figure is usually just the decimal difference.

The index is also expressed with 9 decimals, so an index of 1000000000 means 1.0 — one gARW redeems for exactly one sARW.