A revenue-linked token burn is a deflationary mechanism where a protocol uses a portion of its generated fees or profits to permanently remove its native tokens from circulation. This directly ties the token's supply reduction to the protocol's commercial success, creating a clear value proposition for token holders. Unlike arbitrary or fixed-rate burns, a revenue-linked schedule aligns the interests of users, token holders, and protocol developers by making the burn rate a function of real economic activity. This guide outlines the key design considerations, from choosing a revenue metric to implementing the burn logic in a smart contract.
How to Design a Token Burn Schedule Based on Revenue
How to Design a Token Burn Schedule Based on Revenue
A practical framework for creating sustainable, transparent, and value-accretive token burn mechanisms tied directly to protocol revenue.
The first critical step is defining the revenue source. Not all income is equal for burn purposes. Common models include using a percentage of: swap fees from a DEX, interest rate spreads from a lending protocol, or minting fees from an NFT marketplace. The chosen metric must be on-chain verifiable and resistant to manipulation. For example, a decentralized exchange might commit to burning 50% of all 0.3% pool fees collected in ETH. This creates a transparent and predictable link between trading volume and token scarcity.
Next, you must decide on the burn schedule and triggers. Will burns occur in real-time with each transaction, daily, weekly, or monthly? Real-time burns (e.g., burning a fraction of a token per swap) are gas-intensive but maximally transparent. Batch burns on a schedule (e.g., weekly) are more efficient. The trigger is often implemented via a keeper bot or a scheduled function call. A common pattern is to have a treasury or feeCollector contract accumulate the designated revenue in a stablecoin like USDC, and then execute a buy-and-burn transaction on a DEX like Uniswap V3 on a set interval.
Here is a simplified Solidity code snippet illustrating a basic scheduled burn mechanism. This contract assumes it receives USDC fees and uses a router to swap them for the native PROJECT token before burning.
solidity// Partial example of a burn scheduler contract import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; contract RevenueBurner { IERC20 public immutable usdc; IERC20 public immutable projectToken; address public constant BURN_ADDRESS = 0x000...dEaD; uint256 public lastBurnTime; uint256 public constant BURN_INTERVAL = 7 days; function executeBurn() external { require(block.timestamp >= lastBurnTime + BURN_INTERVAL, "Too soon"); uint256 usdcBalance = usdc.balanceOf(address(this)); // Swap USDC for PROJECT token via a DEX router (logic omitted for brevity) // ... uint256 tokensToBurn = amountReceivedFromSwap; projectToken.transfer(BURN_ADDRESS, tokensToBurn); lastBurnTime = block.timestamp; } }
Finally, consider transparency and communication. The burn parameters—percentage, revenue source, and schedule—should be immutably defined in the contract or governed by a decentralized autonomous organization (DAO). All burn transactions should be publicly verifiable on-chain. Projects like Binance (BNB) with its quarterly burns based on profits, or Ethereum's post-EIP-1559 base fee burns, provide real-world precedents. A well-designed schedule mitigates sell pressure from token emissions, enhances long-term scarcity, and signals a protocol's commitment to sustainable tokenomics, provided the underlying business model generates consistent revenue.
Prerequisites and Technical Requirements
Before implementing a revenue-based token burn, you need the right technical foundation and a clear economic model. This section outlines the essential components.
Designing a token burn schedule requires a robust on-chain revenue tracking mechanism. You must first decide on the revenue source: protocol fees from a DEX like Uniswap V3, subscription payments, or a percentage of transaction gas. This data must be reliably accessible via smart contracts. For example, a fee-collecting contract should emit events or update a public state variable that a separate burn contract can query. Without a transparent and verifiable revenue feed, your burn schedule lacks credibility and trust.
Your technical stack must include a secure smart contract for executing burns, an oracle or keeper network for triggering scheduled actions, and a front-end for user transparency. Use established libraries like OpenZeppelin for ownership and access control. The burn function itself should be permissioned and potentially time-locked. Consider using Chainlink Keepers or a similar service to automate the burn execution based on time or revenue thresholds, removing the need for manual intervention and reducing centralization risk.
You must define the burn parameters mathematically. This includes the burn ratio (e.g., 25% of weekly fees), the frequency (daily, weekly, epoch-based), and any conditional logic. A common model is: tokens_to_burn = (period_revenue * burn_percentage) / token_price. This requires a reliable price oracle, such as Chainlink Data Feeds, to calculate the equivalent token amount. Test these calculations extensively in a forked mainnet environment using tools like Foundry or Hardhat to simulate various market conditions and revenue volumes.
Finally, ensure you have comprehensive monitoring and analytics. Track key metrics like Total Value Burned (TVB), burn rate versus emission rate, and the resulting impact on circulating supply. Tools like Dune Analytics or The Graph are essential for creating public dashboards that showcase the schedule's execution. This transparency is critical for demonstrating the deflationary mechanism's integrity to your community and investors, turning the technical implementation into a verifiable tokenomic feature.
Core Concepts for Revenue Burns
A sustainable token burn schedule aligns protocol revenue with long-term value accrual. These concepts cover the key models and mechanisms for effective design.
Fixed-Percentage Revenue Burn
The simplest model where a set percentage of protocol fees is used to buy and burn tokens. This creates predictable, linear deflation.
- Key Parameter: The burn rate (e.g., 10% of all swap fees).
- Example: Binance (BNB) historically used this model, burning tokens quarterly based on profits.
- Pros: Transparent, easy to implement, and provides consistent sell pressure reduction.
- Cons: Inflexible; doesn't scale with token price volatility or treasury needs.
Dynamic Burn Based on Treasury Health
The burn rate adjusts algorithmically based on metrics like treasury balance, token price, or protocol revenue growth.
- Mechanism: Smart contracts use oracles (e.g., Chainlink) to monitor key financial metrics and adjust the burn percentage.
- Goal: Preserve treasury runway during bear markets while accelerating burns in high-revenue periods.
- Implementation: Requires a more complex, parameterized smart contract with governance-controlled thresholds.
Buyback-and-Burn vs. Direct Burn
Two primary technical methods for executing a burn.
- Buyback-and-Burn: Protocol uses revenue to purchase tokens from the open market (e.g., on a DEX) before burning them. This provides direct buy pressure.
- Direct Burn: Protocol burns tokens directly from its treasury or from a pre-allocated supply. No market purchase occurs.
- Consideration: Buyback-and-burn is often viewed as more value-accretive but requires efficient on-chain market operations to minimize slippage.
S-Curve Adoption Modeling
Designing a burn schedule that anticipates protocol adoption phases.
- Early Stage (Low Revenue): Minimal or zero burns to conserve capital for growth and incentives.
- Growth Stage (Rising Revenue): Gradually increasing burn percentage as network effects and revenue solidify.
- Maturity Stage (High Revenue): Maximum sustainable burn rate to transition value to token holders.
- Tool: Use frameworks like the Bass Diffusion Model to project user adoption and calibrate burn parameters accordingly.
Burn Mechanics & Contract Security
Technical implementation details and critical security considerations.
- Standard Function: The
burn(address,uint256)function, often in ERC-20 or ERC-4626 vaults, which reduces total supply. - Security Audit: Essential for any contract handling protocol revenue. Common risks include reentrancy, oracle manipulation, and privilege escalation.
- Transparency: Burns should be verifiable on-chain. Use Etherscan's Token Tracker or dedicated dashboards (like BSCScan for BNB) for public proof.
How to Design a Token Burn Schedule Based on Revenue
A revenue-based burn mechanism creates a direct, verifiable link between a protocol's financial performance and its token's supply dynamics. This guide covers the architectural patterns and smart contract logic required to implement a sustainable, transparent burn schedule.
A revenue-based burn schedule is a deflationary mechanism where a protocol programmatically destroys (burns) a portion of its native token supply using a percentage of its generated revenue. Unlike arbitrary or time-based burns, this model aligns tokenomics with real economic activity, creating a credible commitment to value accrual. The core design challenge is defining what constitutes 'revenue' (e.g., protocol fees, treasury yield) and establishing transparent, on-chain rules for calculation and execution. This mechanism is often used by DeFi protocols and Layer 2 networks to enhance token scarcity as adoption grows.
The system architecture requires several key components. First, a revenue oracle smart contract must aggregate and validate revenue data, which could come from fee collectors, staking contracts, or off-chain reports verified by a multisig or decentralized oracle like Chainlink. Second, a burn controller contract holds the logic for the burn schedule—such as burning 50% of weekly fees—and initiates the token transfer to a dead address. Third, a scheduler (like a keeper network or time-based function) triggers the burn execution at defined intervals. It's critical that all logic is permissionless and verifiable to maintain trust.
Implementing the burn logic in a smart contract involves precise calculations and secure fund handling. Below is a simplified Solidity example for a contract that burns a fixed percentage of its ETH balance, representing accrued fees, on a weekly basis.
solidity// SPDX-License-Identifier: MIT pragma solidity ^0.8.19; contract RevenueBurner { address public constant BURN_ADDRESS = 0x000000000000000000000000000000000000dEaD; uint256 public lastBurnTime; uint256 public constant BURN_INTERVAL = 1 weeks; uint256 public constant BURN_PERCENTAGE = 50; // 50% function executeBurn() external { require(block.timestamp >= lastBurnTime + BURN_INTERVAL, "Burn interval not met"); uint256 contractBalance = address(this).balance; require(contractBalance > 0, "No revenue to burn"); uint256 burnAmount = (contractBalance * BURN_PERCENTAGE) / 100; lastBurnTime = block.timestamp; (bool success, ) = BURN_ADDRESS.call{value: burnAmount}(""); require(success, "Burn transfer failed"); } // Function to receive protocol fees (ETH) receive() external payable {} }
This contract autonomously burns 50% of its ETH balance weekly. In production, you would add access controls, use a dedicated fee token, and integrate a more robust revenue calculation module.
When designing the schedule, key parameters must be calibrated: the burn percentage, the frequency (e.g., daily, weekly, per epoch), and any thresholds or caps. A common pattern is a tiered system where the burn percentage increases as revenue milestones are hit, creating stronger deflation during high-growth periods. It's also prudent to implement a safety buffer or treasury allocation; burning 100% of revenue can jeopardize operational runway. Always audit the burn logic and use timelocks for parameter changes to prevent governance attacks or unintended supply shocks.
Transparency and verifiability are non-negotiable for credibility. All revenue streams feeding the burn mechanism should be publicly auditable on-chain, or verifiable via proof-of-reserve-like attestations if off-chain. Regular proof-of-burn transactions should be published, and dashboards (like Dune Analytics) should track the cumulative burned supply against revenue. This allows the community to independently verify that the economic model is functioning as promised, turning the burn schedule from a marketing point into a trustless feature of the protocol's architecture.
How to Design a Token Burn Schedule Based on Revenue
A revenue-based burn mechanism creates a direct link between a protocol's financial performance and its token's scarcity. This guide outlines the design and implementation steps.
A revenue-based token burn is a deflationary mechanism where a project uses a portion of its generated revenue to permanently remove tokens from circulation. This creates a direct, verifiable link between protocol utility and token value. The core design involves defining the revenue source (e.g., protocol fees, subscription income), determining the burn allocation percentage, and establishing the execution frequency. Unlike arbitrary burns, this model aligns long-term incentives, as token holders benefit directly from the protocol's commercial success.
First, you must programmatically define and access the revenue stream. For an on-chain protocol, this is typically a smart contract's fee balance. Use a dedicated function to calculate the burnable amount. Below is a simplified Solidity example for an ERC-20 token with a treasury contract:
solidityfunction calculateBurnAmount() public view returns (uint256) { uint256 treasuryBalance = address(treasury).balance; uint256 burnPercentage = 50; // Represents 50% of revenue return (treasuryBalance * burnPercentage) / 100; }
Ensure the revenue calculation is transparent and resistant to manipulation. Off-chain revenue requires a secure oracle or a verified multi-sig process to trigger burns.
Next, decide on the burn trigger and schedule. Common patterns are time-based (e.g., monthly quarterly) or threshold-based (e.g., when revenue reaches 100 ETH). A time-based schedule using a keeper network like Chainlink Automation is reliable. The contract must include access control and a cooldown period to prevent abuse. Here's a skeleton for a time-triggered burn function:
solidityfunction executeScheduledBurn() external { require(block.timestamp >= lastBurnTime + BURN_INTERVAL, "Cooldown active"); require(msg.sender == authorizedKeeper, "Unauthorized"); uint256 amountToBurn = calculateBurnAmount(); require(amountToBurn > 0, "No revenue to burn"); IERC20(token).transferFrom(treasury, BURN_ADDRESS, amountToBurn); lastBurnTime = block.timestamp; emit BurnExecuted(amountToBurn, block.timestamp); }
The BURN_ADDRESS (like 0x000...dead) must be one where tokens are irretrievable.
Transparency is critical for trust. All burn transactions should be emitted as events and tracked on-chain. Consider implementing a public dashboard or on-chain ledger that logs the revenue amount, burn percentage, and number of tokens destroyed. Projects like Binance (BNB) and Ethereum (post-EIP-1559) provide clear models for verifiable burn mechanics. This public audit trail allows the community to independently verify that the burn aligns with announced policy, turning the mechanism into a credible signal of protocol health.
Finally, integrate the burn schedule into your broader tokenomics model. Analyze its impact on token supply curves and holder dilution. Use tools like Token Terminal or custom scripts to model long-term supply under different revenue growth scenarios. Key parameters to test are the burn percentage, revenue volatility, and initial circulating supply. A well-designed schedule should be sustainable through market cycles—avoid setting a fixed percentage so high it jeopardizes treasury runway during bear markets. The goal is a predictable, automated policy that strengthens the token's value accrual over time.
Comparison of Burn Trigger Mechanisms
Different on-chain conditions that can initiate a token burn from protocol revenue.
| Mechanism | Revenue Threshold | Time-Based | Event-Based | Key Consideration |
|---|---|---|---|---|
Fixed Percentage | Yes | Predictable but inflexible | ||
Epoch/Snapshot | Aligns with treasury reporting cycles | |||
Price Peg Defense | Triggers when token trades below target | |||
Liquidity Pool Ratio | Yes | Maintains DEX pool health; complex | ||
Governance Vote | Maximum flexibility; requires DAO participation | |||
Gas Cost | < $5 | $10-50 | Varies | On-chain verification expense |
Automation Level | Full | Full | Manual | Reliance on keepers or governance |
Designing a Token Burn Schedule Based on Revenue
Implementing a revenue-based burn mechanism is a common strategy for tokenomics. This guide explains the core concepts and provides secure Solidity code examples.
A revenue-based burn schedule is a deflationary mechanism where a protocol uses a portion of its generated revenue to permanently remove (burn) its native tokens from circulation. This creates a direct link between protocol utility and token scarcity. Common revenue sources include transaction fees, subscription payments, or protocol-owned liquidity yields. The key design parameters are the revenue source, the burn percentage (e.g., 50% of fees), and the execution trigger (e.g., on each transaction or via a periodic function).
The core logic requires a secure method to collect revenue, calculate the burn amount, and execute the burn. For ERC-20 tokens, burning is typically done by transferring tokens to the zero address (address(0)) or a dead contract. A critical security consideration is access control; only a trusted component (like a fee handler) should trigger the burn. Use the OpenZeppelin Ownable or AccessControl contracts to restrict the burn function. Reentrancy is less of a concern for standard transfers, but it's good practice to follow checks-effects-interactions patterns.
Here is a basic, secure implementation example. This contract assumes it receives a stablecoin (like USDC) as revenue and uses it to buy and burn its own token from a DEX pool. It uses a pull payment model for security, where an authorized keeper calls the function to execute the burn cycle.
solidityimport "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; contract RevenueBurner is Ownable { IERC20 public immutable revenueToken; // e.g., USDC IERC20 public immutable burnToken; // Protocol's native token address public constant DEAD = 0x000000000000000000000000000000000000dEaD; uint256 public burnPercentage = 5000; // 50% in basis points (bps) address public keeper; constructor(address _revenueToken, address _burnToken) { revenueToken = IERC20(_revenueToken); burnToken = IERC20(_burnToken); keeper = msg.sender; } function executeBurn() external { require(msg.sender == keeper || msg.sender == owner(), "Unauthorized"); uint256 revenueBalance = revenueToken.balanceOf(address(this)); uint256 amountToSpend = (revenueBalance * burnPercentage) / 10000; if (amountToSpend == 0) return; // In a real scenario, you would swap revenueToken for burnToken via a router. // For simplicity, this example assumes the contract already holds burnToken. // Simulate the burn by transferring from this contract's balance. uint256 burnTokenBalance = burnToken.balanceOf(address(this)); uint256 amountToBurn = (burnTokenBalance * amountToSpend) / revenueBalance; if (amountToBurn == 0) return; revenueToken.transfer(owner(), revenueBalance - amountToSpend); // Send remainder to treasury burnToken.transfer(DEAD, amountToBurn); // Execute burn } function setBurnPercentage(uint256 _bps) external onlyOwner { require(_bps <= 10000, "Cannot exceed 100%"); burnPercentage = _bps; } function setKeeper(address _newKeeper) external onlyOwner { keeper = _newKeeper; } }
This example highlights several important patterns. The contract uses immutable variables for core tokens to prevent changes after deployment. The burnPercentage is stored in basis points (bps) for precision, where 10000 = 100%. The executeBurn function is permissioned, and the logic includes zero-amount checks to avoid unnecessary gas expenditure. The revenue not used for burning is sent to a treasury (owner()), a common pattern for allocating the remaining percentage. In production, you would integrate a DEX router (like Uniswap V3's ISwapRouter) to perform the actual swap from revenue token to burn token before the transfer to the dead address.
Key security and design considerations extend beyond the basic code. Oracle Integration: If the burn value is pegged to a USD amount rather than a percentage of token balance, you need a price oracle (like Chainlink) to calculate the correct amount of tokens to burn. Slippage Protection: When swapping on a DEX, always specify a minimum amount out to protect against market manipulation and high slippage. Timelocks for Parameters: Consider adding a timelock (e.g., using OpenZeppelin's TimelockController) for critical changes like adjusting the burnPercentage to give the community warning. Gas Efficiency: For high-frequency revenue streams (e.g., per-transaction), burning on every action may be too costly. Instead, accumulate revenue and execute burns periodically via a keeper network like Chainlink Automation.
Testing this mechanism is crucial. Write comprehensive unit tests (using Foundry or Hardhat) that simulate: the revenue collection, the keeper calling executeBurn, edge cases with zero balances, and unauthorized access attempts. Furthermore, consider the economic implications. A transparent, on-chain burn schedule can increase token holder confidence, but it must be sustainable. Model the expected revenue streams to ensure the burn rate doesn't jeopardize protocol treasury operations. Always document the burn logic and parameters clearly for users. For advanced implementations, explore vesting burns (burning tokens linearly over time from a designated pool) or buyback-and-burn models using on-chain liquidity.
Implementation Resources and Tools
Practical tools and design patterns for implementing a revenue-linked token burn schedule. These resources focus on onchain accounting, automation, governance controls, and transparency so burn mechanics remain predictable, auditable, and resistant to manipulation.
Onchain Revenue Accounting Contracts
A revenue-based burn schedule starts with verifiable onchain revenue measurement. This typically means isolating protocol income into a dedicated contract rather than inferring revenue from token transfers.
Key design elements:
- Revenue collector contracts that receive protocol fees directly from core logic such as AMMs, lending pools, or NFT marketplaces.
- Explicit separation between gross revenue and net revenue after incentives, rebates, or operator fees.
- Immutable accounting rules such as "X% of net revenue per epoch is eligible for burn".
Common implementation patterns:
- Use a single-purpose FeeCollector contract that exposes
getRevenue(epoch). - Normalize revenue into a base asset like ETH or USDC before calculating burn amounts.
- Emit detailed events for each revenue deposit to support offchain analytics.
This approach avoids discretionary burns and makes the burn schedule reproducible from chain data alone, which is critical for audits and investor trust.
Frequently Asked Questions (FAQ)
Common questions and technical considerations for developers designing a revenue-based token burn mechanism.
A revenue-based token burn schedule is a deflationary mechanism where a protocol programmatically destroys (burns) a portion of its native tokens based on generated revenue. Unlike fixed-rate or one-time burns, this schedule directly links token supply reduction to protocol utility and financial performance.
How it works:
- The protocol defines a revenue source (e.g., 20% of trading fees, 50% of protocol profits).
- Revenue is collected, often in a stablecoin or the chain's native asset (like ETH).
- The protocol uses these funds to buy back its own token from the open market via a decentralized exchange (DEX).
- The purchased tokens are sent to a dead address (e.g.,
0x000...dead), permanently removing them from circulation.
This creates a positive feedback loop: increased protocol usage generates more revenue, leading to larger burns and reduced supply, which can positively impact token economics if demand remains constant or grows.
How to Design a Token Burn Schedule Based on Revenue
A revenue-based burn schedule is a deflationary mechanism that permanently removes tokens from circulation using a portion of a protocol's earnings. This guide explains how to design, test, and verify such a schedule.
A revenue-based token burn is a powerful tool for aligning token value with protocol success. Unlike arbitrary or time-based burns, it directly ties token supply reduction to financial performance. The core design involves defining a burn function that determines what percentage of protocol revenue (e.g., fees, profits) is used to buy back and destroy tokens. This creates a positive feedback loop: increased protocol usage generates more revenue, leading to larger burns, which reduces supply and can increase token scarcity. Key parameters to define are the revenue source (gross vs. net), the burn percentage, and the execution frequency (e.g., daily, weekly).
Before deploying, you must rigorously simulate the burn schedule's long-term effects. Use a spreadsheet or a script to model different scenarios. Input variables should include projected revenue growth, token price volatility, and initial circulating supply. The model should output key metrics like the burn rate over time, the projected reduction in circulating supply, and the implied annual deflation rate. Tools like Python with pandas or specialized tokenomics modeling platforms can automate this analysis. Test edge cases: what happens if revenue plateaus or crashes? How does the schedule perform under high and low adoption scenarios?
For on-chain implementation, the burn mechanism must be trust-minimized and verifiable. A common pattern uses a smart contract that automatically routes a defined share of protocol fees to a burn address (like address(0)) or a contract with an uncallable burn function. Transparency is critical: all revenue calculations and burn transactions should be visible on-chain or through verifiable oracle reports. For decentralized protocols, consider using a timelock-controlled function to adjust parameters, allowing for community governance over the burn rate. Always include event emissions for each burn to facilitate off-chain tracking and analytics.
After deployment, continuous verification is essential. Use block explorers like Etherscan and analytics platforms like Dune Analytics or Token Terminal to create dashboards that track: - Actual vs. projected burn amounts - The correlation between protocol revenue and tokens burned - The cumulative impact on total supply. Regularly audit the smart contract logic and the revenue streams feeding it to ensure the mechanism operates as intended. This public verification builds trust with token holders by proving the deflationary mechanism is active and effective, directly linking protocol utility to token economics.
Conclusion and Next Steps
A well-designed token burn schedule is a powerful tool for aligning tokenomics with protocol health. This guide has outlined the core principles and models for linking burns to revenue.
The key to a successful revenue-linked burn is transparency and predictability. Your smart contract should emit clear events for revenue collection and burn execution, allowing users and analytics dashboards to verify the mechanism. For example, an event like RevenueProcessed(uint256 amount, uint256 burnAmount, uint256 timestamp) provides full auditability. This builds the trust necessary for the deflationary mechanism to positively impact token perception and holder behavior over the long term.
Your next step is to stress-test your chosen model. Use a forked mainnet environment with tools like Foundry or Hardhat to simulate extreme market conditions: - A 10x surge in protocol revenue - A 90% drop in revenue over three months - Volatile token prices affecting the USD-value trigger. Analyze the impact on the token's circulating supply and projected burn runway. This modeling helps prevent scenarios where burns become negligible or unsustainably large.
Finally, consider the integration points. Revenue must be reliably and securely directed to the burn mechanism. For many protocols, this involves a treasury or fee collector contract that swaps accrued fees (e.g., ETH, USDC) for the native token via a DEX router before initiating the burn. Ensure this swap logic uses a secure price oracle or DEX pool reserves to prevent manipulation. The entire flow should be permissionless and automated upon reaching predefined conditions.
For further learning, study real-world implementations. Examine the contract code for Binance's BNB Auto-Burn or Ethereum's EIP-1559 base fee burn. While not all are directly revenue-linked, they provide excellent case studies in burn mechanics and economic effects. The Token Engineering Commons and resources like the Tokenomics Design Guide offer deeper community-driven frameworks.
Start with a simple, conservative model—such as a fixed percentage of quarterly net revenue—and iterate based on on-chain data. A sustainable burn schedule is not set in stone; it should evolve with your protocol's growth, always serving the ultimate goal of creating a more scarce and valuable asset for aligned participants.