Centurion protocol fees
Last modified:
Understand how protocol fees flow from CenturionDEX products into TokenJar and through releaser contracts.
Fees from protocol versions (v2, v3) and other CenturionDEX products flow into a single onchain collector on each network. From there, specialized contracts handle how those assets are released or transformed (for example, burning CTN).
Flow of Assets
-
Fee Sources Each protocol component that generates fees (v2, v3, and others) routes those fees through an associated Fee Adapter contract. Adapters define how and when fees are collected and send them to the TokenJar on the same chain.
-
TokenJar Each chain has one immutable contract called the TokenJar. All fee sources send tokens here. It is the unified collection point for raw tokens.
-
Releasers Releasers define how tokens in the TokenJar are accessed. The simplest version burns CTN in exchange for the collected tokens. Other Releasers can handle cross-chain conversions or alternative value flows.
-
Governance Control Governance can update which Releaser a TokenJar uses or adjust configuration on Fee Adapters, but the core contracts themselves are immutable.
Components
TokenJar
Immutable contract that receives all tokens from fee sources on a given chain. Only the active Releaser can withdraw from it.
See the TokenJar contract source for more.
Fee adapters
Adapters that connect specific protocol versions or products to the TokenJar. They define how and when fees are collected.
See the Fee Adapter contract source for more.
Releasers
Contracts that convert collected fees into protocol value according to defined logic. Examples include the Firepit Releaser, which burns CTN in return for assets.
See the Releaser contract source for more.
Real-World Example
- Assume 100 CTN is the
thresholdamount for the Firepit Releaser. - When the top N assets in the TokenJar are worth slightly more than 100 CTN, anyone is incentivized to use the
Firepit.release()contract to:- Burn 100 CTN
- Withdraw the top N assets, valued at slightly more than 100 CTN
Firepit Mechanics
Threshold
Firepit.threshold() is the minimum CTN amount required to call release(). Governance can update this threshold through the configured governance flow.
Release
Firepit.release() is user-triggered. The caller submits the transaction with their signer and burns the required CTN amount to withdraw configured assets from the releaser flow.