Skip to main content

Covenant lifecycle

A covenant is a small state machine. It is born on a sell, lives for up to 7 days, and ends either absorbed by a buyer or locked as protocol liquidity.

On-chain status codes

The contracts track three canonical states:

CodeStatusMeaning
0Active / openLive and available for absorption.
1AbsorbedFully taken on by buyers (redeemed).
2LockedExpired and settled into locked LP.

dApp status labels

The interface adds a few intermediate labels to describe in-progress transitions:

  • Active — open, nothing absorbed yet.
  • Absorbing → Absorbed — a buy is partially or fully filling it.
  • Expiring — close to its 7-day mark.
  • Expirable — matured; awaiting the permissionless settlement sweep.
  • Locking → Locked — settlement is converting it into the locked LP position.

Queue mechanics

Covenants live in a FIFO queue: buys absorb from the head (oldest first), and settlement also matures the head first. One consequence worth knowing: a matured covenant sitting at the head pauses absorption until someone calls the permissionless settlement to clear it — see queue risk. The queue is the single on-chain address you index to read all of this; see the covenant queue.