Skip to content

Your bond as an NFT

Every bond is one token, minted for you when you buy and burned when the bond is paid in full. The token is a standard NFT named Coffer Bond, numbered by the bond. It carries the bond’s facts in its own metadata, the validator’s public key, the Coffer’s address, the maturity date and the maturity value, and the Coffer refreshes that metadata when the bond changes. So any wallet or NFT marketplace that reads tokens can show the bond as it is. Whoever holds the token holds the claim to the maturity value, and nobody else does.

What a transfer moves, and what it does not

Section titled “What a transfer moves, and what it does not”

Moving the token moves the bond. The new holder gets the claim to the maturity value, the redemption at maturity or in a default, the right to list the bond and to accept offers on it, and the bond itself. It leaves your portfolio, appears in theirs, and its history gains the line Transferred.

Four things do not move. The marketplace approval is given by each wallet for itself, so the new holder approves the marketplace before listing. A listing of yours dies with the transfer, since the contract refuses a fill from a seller who no longer holds the bond, and the app stops showing it. An offer you made on the bond before you held it stays live for the next holder to accept. And once the validator has redeemed the bond, the escrowed value belongs to whoever held the bond at that moment, the token is already burned and there is nothing to move, see Claim escrowed funds.

The app has no transfer button. You move the token in your wallet, or by selling it, and the app shows the result.

The Coffer marketplace is one way, a listing at your ask in ETH, or an offer someone makes you in WETH, see How trading works and List a bond. A sale there writes Sold or Offer accepted in the history, and the transfer beneath it writes Transferred, both from the same transaction.

Any NFT marketplace is another way, since the token is a standard one. Such a venue shows the token’s name and its metadata, and nothing more. It knows nothing of the coverage band, the status or the checks on Before you buy, it charges its own fee and asks for its own approval, and a sale there shows in the app as Transferred only. Whoever buys the bond there buys the same claim, and the same checks apply to them.

Your portfolio shows each bond as an animated card, and the bond’s page shows the same card larger. At the top, Value and the maturity value in ETH. Under it, two badges, the bond’s interest rate, such as 2.00%, and the status label, a countdown such as T-30d, Matured, Validator defaulted or Redeemed, with a dot that is green, amber or red. The mark on the card takes the colour of the Coffer’s coverage band. The footer lists Bond with its number, Matures with the date, Holder, Coffer and Principal. While at least one offer stands on the bond, the card’s ring turns solid and a pill on it reads Offer received.

On the bond’s page the card also plots the bond’s timeline, a line from Bond created through every event in the history to Matures, or Matured once the date has passed, with Now marked on it. The event labels are the history’s, see Bond lifecycle and statuses. What the status label and the mark mean is on Statuses across the layers.

A bond someone transfers to you appears in your portfolio with its card, and you redeem it at maturity, or in a default, like any bond you bought. Before you list it, you give the marketplace your own approval, once for all your bonds. Any listing the previous holder made is dead. Offers that stand on the bond are yours to accept. The one thing that never arrives is an escrow claim from a validator redemption that happened before the transfer, the token was burned then and the claim stayed with its holder of that moment.