FXBs
Zero-coupon bonds that help stabilize the FRAX peg
Last updated
Zero-coupon bonds that help stabilize the FRAX peg
Last updated
FXB tokens are simple, trustless tokens that resemble a zero-coupon bond that converts to the FRAX stablecoin upon maturity. FXB AMOs auction off FXBs at a discount to face value. This discount provides the equivalent of RWA yield to buyers without the assumption of RWA risk. They also help remove circulating FRAX and stabilize the peg, as users cannot sell FRAX that is locked (until maturity) in a FXB.
FXBs are debt tokens denominated in FRAX stablecoins, not a claim on any other asset or collateral. FXB tokens are only convertible to FRAX stablecoins, they do not guarantee FRAX peg, FRAX value, or yield/interest denominated in any other asset except FRAX. FXBs do not entitle the holder to any asset offchain or onchain (other than FRAX stablecoins). Thus, FXBs are not redeemable for US Treasury Bills nor any real-world asset, are not directly backed/collateralized by them (or any specific asset), and do not have any utility except trustlessly converting to FRAX stablecoins at the pre-programmed maturity timestamp generated at their minting. This is important and not merely a semantic distinction because it directly defines the normative and economic property of FXBs. Frax Bond tokens only guarantee that they convert to FRAX on a one-to-one basis through smart contracts that issue them. FXBs allow the formation of a yield curve to price the time value of lending FRAX back to the protocol itself. Each FXB token is a fungible ERC20 token deployed from an onchain factory contract. At FXB minting time, FRAX stablecoins are transferred into the FXB contract for conversion on maturity. This prevents any external actions being necessary for the full FXB cycle to occur and entirely remains trustless. There can be multiple FXB series circulating at all times and no limit for the minimum or maximum maturity timestamp for FXBs deployed from the factory.
FXBs mature at the end of the day of their maturity date in UTC and have no expiration. For example, the 20261231 FXB is able to be burned back for its' corresponding FRAX as soon as 1893456000.
FXB series price discovery happens through a continuous gradual Dutch auction (GDA) auction system that has quantity and price limit set by the Frax team. This guarantees that FXB tokens are not sold for prices lower than the floor limit. Auctions happen through the FXB AMO contract and are trustless, permissionless, and non-custodial. New auctions can happen at any time by the Fraxtal Comptroller and Fraxtal AMO Operator, initiated through the FXB AMO.
As mentioned, at FXB minting time, FRAX stablecoins are transferred into the FXB contract for conversion on maturity. An FXB can be broken down into two types, Origin and Bridged, referring to the chain the FXB is originally minted on. This differentiation is needed as the Origin chain, the chain the FXB was originally minted from, is where the FXB owner is able to burn their FXB for the equivalent FRAX after maturity. An FXB which, for example, originates on Fraxtal and is then bridged to Fraxtal, is considered Bridged, whereby the underlying FRAX remains on Fraxtal and the FXB must be bridged back to redeem the FRAX. Similarly, the FXB must be minted on the origin chain to contain the underlying FRAX.
Why does this happen? When an FXB is originally created, it is done through the FXBFactory. This origin FXB contains the code to mint and burn. Once the FXB is bridged, the destination chain creates the FXB from the bridge ERC20Factory. This bridged version can only be minted and burned (redeemed) by the bridge.
To trustfully import contracts to your local repository, refer to the frax-template.
Contract | Ethereum | Fraxtal |
---|---|---|
FXB Factory |
| |
Auction Factory (permission-less) |
| |
FXB AMO |
| |
AMO Operator (msig) |
| |
AMO Timelock (msig) |
|
Ethereum
December 31, 2024
Fraxtal | Ethereum | Arbitrum One | |
---|---|---|---|
FXB | 0xa71bB8c79dc8FfA90A6Dd711aA9Fbe5114c19cba | 0xF8FDe8A259A3698902C88bdB1E13Ff28Cd7f6F09 | |
Auction | 0x36b3b471c7486Eb9583759681404c48d3c8CC813 | ||
Oracle | 0x08a0748cF885F46e20fA30A50a035808eab293D3 | ||
Curve Pool |