The Adaptive Tax Token is an experimental ERC20 designed to demonstrate dynamic, self-adjusting tokenomics. Instead of using a static fee model (common in reflection/tax tokens), this contract uses transfer volume monitoring to automatically regulate the tax rate.
If recent transfer activity is:
- LOW → tax increases slowly (up to a configured max)
- HIGH → tax decreases slowly (down to a configured min)
- MEDIUM → tax remains where it is
This creates a self-regulating system that adapts to market behavior, nudges users toward healthier price discovery, and illustrates how tokenomics can behave like an economic control loop instead of a static configuration.
This project is not a typical meme tax token, it’s a research-oriented demonstration of adaptive economic design, perfect for:
- smart contract learners
- tokenomics researchers
- DeFi analysts
- economic modelers
- experimental developers
Traditional tokens rely on:
- fixed fees
- fixed reward curves
- fixed emission schedules
These are fragile and become outdated the moment market conditions change.
Adaptive tokenomics takes a different approach:
The token continuously senses its own environment and adjusts parameters automatically.
This contract demonstrates exactly that by adapting one key parameter:
Which is:
- increased when network usage is low
- decreased when usage is high
- stabilized when usage is healthy
This mimics feedback systems found in:
- biological organisms
- financial control loops
- automated market makers
- economic stabilizing policies
Every time a transfer happens:
-
The contract checks if the measurement window expired
- Example: every 24 hours (
volumeWindow)
- Example: every 24 hours (
-
It evaluates how much total volume occurred in that period
windowVolume
-
It compares volume to 2 thresholds
lowVolumeThresholdhighVolumeThreshold
-
Tax rate is adjusted accordingly
- low volume → increase tax
- high volume → decrease tax
- else → keep tax steady
-
The window resets for the next period
-
A tax fee is applied on transfers
- Sent to a treasury address
- Unless the sender/receiver is exempt
This system behaves like a miniature “adaptive economy.”
The system monitors transfers in time windows:
windowVolume += amount
After each transfer, it checks if:
block.timestamp >= windowStart + volumeWindow
If yes:
if volume < lowVolumeThreshold:
tax += adjustStep (but not above max)
else if volume > highVolumeThreshold:
tax -= adjustStep (but not below min)
else:
tax stays same
This creates smooth tax movements, never too sudden or extreme.
These give you full control over how adaptive your token is.
| Parameter | Description |
|---|---|
taxBps |
Current tax in basis points |
minTaxBps |
Minimum allowed tax |
maxTaxBps |
Maximum allowed tax |
adjustStepBps |
How much the tax moves per window |
volumeWindow |
Time window in seconds |
windowVolume |
Tracked transfer volume |
lowVolumeThreshold |
Below = low activity |
highVolumeThreshold |
Above = high activity |
treasury |
Address receiving fees |
isTaxExempt |
Addresses immune to tax |
This system is flexible and tunable like a real economic mechanism.
adaptive-tax-token/
│
├── contracts/
│ └── AdaptiveTaxToken.sol
│
└── README.md
This fits perfectly into:
- Remix
- Hardhat
- Foundry
- Truffle
- Any EVM-compatible dev stack
Here’s a deeper look at everything inside the token.
The contract includes:
- name, symbol, decimals
- balance tracking
- allowances
- transfer / transferFrom / approve
No external libraries, pure Solidity.
A rolling time window (24h) tracks how much volume happened. Based on thresholds:
- Too little activity → raise tax
- Too much activity → lower tax
- Moderate activity → leave tax unchanged
This encourages:
- more trading when tax falls
- treasury accumulation when trading quiets
It becomes a form of semi-autonomous monetary policy.
The collected fees flow to:
treasury
Admins can change the treasury address to:
- DAO treasury
- staking pool
- liquidity incentives
- development fund
The owner can update:
- tax bounds (min/max)
- tax adjust speed
- volume window
- thresholds
- treasury
- tax-exempt addresses
- ownership
This allows fine-tuning behavior as you test.
The entire contract:
- is readable
- avoids unnecessary complexity
- follows proper ordering of checks
- uses explicit error messages
- includes clear events
Perfect for audits or educational demonstration.
Here’s a great example config for simulation:
initialSupply = 1,000,000 tokens
decimals = 18
initialTaxBps = 200 (2%)
minTaxBps = 50 (0.5%)
maxTaxBps = 500 (5%)
adjustStepBps = 25 (0.25% change per window)
volumeWindow = 86400 (24 hours)
lowVolumeThreshold = 10,000 tokens/day
highVolumeThreshold = 100,000 tokens/day
Meaning:
- If daily volume < 10k → raise tax
- If daily volume > 100k → lower tax
- Else → maintain current tax
This mirrors a simple macroeconomic stabilizer.
Daily transfers = 3,000 tokens → below low threshold → tax increases by 25 bps
After 4 quiet windows: → tax increases from 2% → 3%
Daily transfers = 200,000 tokens → above high threshold → tax decreases by 25 bps
Encourages more trading by reducing fee burden.
Daily transfers = 50,000 tokens → tax remains stable
The system stays balanced.
While not designed for high-value deployments, this system is built with clean logic.
Important notes:
Owner can:
- change bounds
- change thresholds
- change treasury
This is intentional for experimentation.
Transfers update state safely before external calls.
No hidden mechanisms
- no rebasing
- no reflections
- no minting
- no burns unless manually coded
Tax changes emit events.
If you want to extend this:
Dynamic tax governed by:
- pool size
- volatility
- price impact
React to multiple market signals.
Instead of linear adjustments.
Based on holding time or user behavior.
AI-based parameter tuning.
Community-driven economic policy.
MIT License
This project is free for:
- educational use
- modification
- commercial use
- research use
- integration into demos
Issues, improvements, and extensions are welcome. This project is intended as an economic playground, build on it freely.