Rule reference
Inspect every structured rule type supported by the current parser and manual catalog.
Documentation index
Fee rules
buyFeeBuy feeRepresents a percentage taken from buys, optionally for an early window or only above an ETH amount.
+
Recognized instruction examples
Take 1% on buys.
Charge 4% on buys above 1 ETH.
Take 3% on buys for the first hour.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'buyFee', percent, durationMinutes?, aboveEth? }- Required
- percent
- Optional
- durationMinutes, aboveEth
- Units
- percent is percentage points of each buy; durationMinutes is minutes; aboveEth is ETH.
Valid structured example
{ type: 'buyFee', percent: 3, durationMinutes: 60 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. The validator rejects percent below 0 or above 25. Duration and above-ETH thresholds have no domain-specific range check.
Bounds. The validator enforces 0%–25%. The editor prevents negative input.
Conflicts. No direct duplicate-side conflict check; exact duplicate objects are normalized away.
Rejected or incomplete examples
Take 30% on buys.Recognized, then rejected because buy fees must be between 0% and 25%.
Behavior Score and current edge
BUY source, fee percentage, and optional FIRST/ABOVE condition.
Current edge. Large-trade and temporary conditions are represented but not executed today.
sellFeeSell feeRepresents a percentage taken from sells, optionally for an early window or only above an ETH amount.
+
Recognized instruction examples
Take 2% on sells.
Charge 4% on sells above 1 ETH.
Take 5% on sells for the first 24 hours.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'sellFee', percent, durationMinutes?, aboveEth? }- Required
- percent
- Optional
- durationMinutes, aboveEth
- Units
- percent is percentage points of each sell; durationMinutes is minutes; aboveEth is ETH.
Valid structured example
{ type: 'sellFee', percent: 2 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. The validator rejects percent below 0 or above 25. Allocations attached to sellFee are checked separately against the collected total.
Bounds. The validator enforces 0%–25%. The editor prevents negative input.
Conflicts. Allocations may draw from this fee and cannot total more than 100% of it.
Rejected or incomplete examples
Take 30% on sells.Recognized, then rejected because sell fees must be between 0% and 25%.
Behavior Score and current edge
SELL source, fee percentage, optional condition, and allocation branches.
Current edge. A sell fee is structured configuration, not an observed charge.
Time rules
feeChangeOverTimeFee changeRepresents an instant or gradual buy/sell fee change after time or a volume threshold.
+
Recognized instruction examples
Lower the sell fee from 5% to 1% after 24 hours.
Start at 5% and lower it to 1% over 7 days.
Lower sell fees to 1% after $100K of volume.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'feeChangeOverTime', fee, fromPercent, toPercent, afterHours, changeMode?, overHours?, triggerVolumeUsd? }- Required
- fee, fromPercent, toPercent, afterHours
- Optional
- changeMode, overHours, triggerVolumeUsd
- Units
- percent fields are percentage points; afterHours and overHours are hours; triggerVolumeUsd is US-dollar notional.
Valid structured example
{ type: 'feeChangeOverTime', fee: 'sell', fromPercent: 5, toPercent: 1, afterHours: 168, changeMode: 'instant' }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. Different targets for the same fee side at the same afterHours are rejected. Target ranges, time ranges, and volume ranges are not otherwise checked.
Bounds. No dedicated target-fee or time/volume range check is currently enforced.
Conflicts. Different target values for the same fee side at the same afterHours are rejected.
Rejected or incomplete examples
Lower sell fees eventually.Rejected as unrecognized because a target value and supported time or volume trigger are missing.
Behavior Score and current edge
A NOW-to-THEN/ENDS rail with percentage and time or volume endpoint.
Current edge. Volume-triggered changes have no live volume source. Pronouns use the most recently parsed fee source.
timedActivationTimed activationRepresents a named behavior beginning after a delay or remaining active for a duration.
+
Recognized instruction examples
Only use this rule for the first 24 hours.
Stop this reward after 7 days.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'timedActivation', afterHours, action, durationHours? }- Required
- afterHours, action
- Optional
- durationHours
- Units
- afterHours and durationHours are hours; action is descriptive text.
Valid structured example
{ type: 'timedActivation', afterHours: 0, durationHours: 24, action: 'the previous rule is active' }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. No time bound or cross-rule target validation exists because action is not a linked rule ID.
Bounds. No domain-specific time bounds.
Conflicts. The free-text action is not resolved to another rule, so cross-rule conflicts are not checked.
Rejected or incomplete examples
Start rewards later.Rejected as unrecognized because no supported action and duration pattern is present.
Behavior Score and current edge
A plain-language TIME statement.
Current edge. ‘Previous rule’ relationships are descriptive, not linked by ID. ‘Start staking rewards after…’ is currently consumed as an incomplete staking rule before the timing pattern runs.
tradingOpenTrading openRepresents opening trading after launch or at a locally parsed date/time.
+
Recognized instruction examples
Open trading 30 minutes after launch.
Open trading tomorrow at 9am.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'tradingOpen', mode, afterMinutes?, dateTime? }- Required
- mode
- Optional
- afterMinutes, dateTime
- Units
- afterMinutes is minutes; dateTime is an ISO timestamp derived from local runtime time.
Valid structured example
{ type: 'tradingOpen', mode: 'afterLaunch', afterMinutes: 30 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. No range, timezone, duplicate-rule, or scheduler validation exists.
Bounds. No scheduling-range or timezone validation.
Conflicts. Multiple open rules are not reconciled.
Rejected or incomplete examples
Open trading later.Rejected as unrecognized because no supported delay or date/time is present.
Behavior Score and current edge
A plain-language TIME statement.
Current edge. ‘Tomorrow’ is parsed using the visitor/server runtime date and local timezone; no scheduler exists.
Destination rules
buybackBuyback allocationRoutes a fixed trade percentage or share of a collected fee toward buying a target ticker.
+
Recognized instruction examples
Use half of sell fees to buy back MOG.
Use 1% of every sell to buy back MOG.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'buyback', source, percent, targetTicker, shareOfFee?, destination? }- Required
- source, percent, targetTicker
- Optional
- shareOfFee, destination
- Units
- percent is effective percentage points of a trade; shareOfFee is percent of the collected source fee.
Valid structured example
{ type: 'buyback', source: 'sellFee', percent: 1, shareOfFee: 50, targetTicker: 'MOG' }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. A share above 100%, an effective amount above an existing fee, or combined allocations above 100% of one source is rejected.
Bounds. A share over 100% or combined source allocations over 100% is rejected.
Conflicts. Competes with other allocations from the same fee source.
Rejected or incomplete examples
Buy MOG back sometime.Rejected as unrecognized because it does not match a supported buyback instruction pattern.
Behavior Score and current edge
A fee branch labeled BUY {ticker}; an explicit burn rule may add a BURN terminal.
Current edge. Buyback does not imply burn. Destination is editable but not parsed from every sentence form.
burnBurnRepresents burning a share of bought-back tokens or, in the data model, another supported source.
+
Recognized instruction examples
Burn everything bought back.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'burn', source, percent, shareOfBuyback? }- Required
- source, percent
- Optional
- shareOfBuyback
- Units
- percent and shareOfBuyback are percentages of the configured source.
Valid structured example
{ type: 'burn', source: 'buyback', percent: 100, shareOfBuyback: 100 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. There is no burn-specific numeric bound or relationship error today; the parser requires explicit burn language.
Bounds. No burn-specific numeric range is validated today.
Conflicts. No explicit conflict check.
Rejected or incomplete examples
Destroy some supply later.Rejected as unrecognized; a supported burn phrase must explicitly identify tokens or bought-back tokens.
Behavior Score and current edge
Appears as a BURN terminal only when an active buyback and explicit buyback-sourced burn both exist.
Current edge. The parser requires burn language and never infers burn from a buyback alone.
holderRewardsHolder rewardsAllocates a fee share or trade percentage to holders.
+
Recognized instruction examples
Send half of sell fees to holders.
Share 1% of every trade with holders.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'holderRewards', source, percent, shareOfFee?, activationHours? }- Required
- source, percent
- Optional
- shareOfFee, activationHours
- Units
- percent is effective trade percentage; shareOfFee is percent of the collected source; activationHours is hours.
Valid structured example
{ type: 'holderRewards', source: 'sellFee', percent: 1, shareOfFee: 50 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. Fee-share allocations participate in the per-source 100% total. Eligibility and distribution are not validated.
Bounds. Fee-share allocation totals cannot exceed 100%.
Conflicts. Shares the selected fee source with other allocations.
Rejected or incomplete examples
Reward the community.Rejected as unrecognized because neither a supported holder destination nor a measurable allocation is present.
Behavior Score and current edge
A fee branch labeled HOLDERS with its effective trade percentage.
Current edge. Eligibility, accounting, and distribution are not implemented.
stakingRewardsStaking rewardsAllocates a fee share or trade percentage to stakers.
+
Recognized instruction examples
Send 25% of sell fees to stakers.
Send 1% of every sell to people who stake.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'stakingRewards', source, percent, shareOfFee?, activationHours? }- Required
- source, percent
- Optional
- shareOfFee, activationHours
- Units
- percent is effective trade percentage; shareOfFee is percent of the collected source; activationHours is hours.
Valid structured example
{ type: 'stakingRewards', source: 'sellFee', percent: 1, shareOfFee: 50 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. Fee-share allocations participate in the per-source 100% total. A vague staking sentence is marked incomplete.
Bounds. Fee-share allocation totals cannot exceed 100%.
Conflicts. Shares the selected fee source with other allocations.
Rejected or incomplete examples
Reward stakers.Recognized but incomplete because the reward source or allocation is missing.
Behavior Score and current edge
A fee branch labeled STAKERS with its effective trade percentage.
Current edge. A vague staking-reward sentence is marked incomplete. Real staking and reward distribution are disabled.
liquidityAllocationLiquidity allocationAllocates a share of collected fees to the concept of growing liquidity.
+
Recognized instruction examples
Use 20% of collected fees to grow liquidity.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'liquidityAllocation', source, percent, shareOfFee? }- Required
- source, percent
- Optional
- shareOfFee
- Units
- percent is effective trade percentage; shareOfFee is percent of the collected source.
Valid structured example
{ type: 'liquidityAllocation', source: 'sellFee', percent: 0.4, shareOfFee: 20 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. The share participates in the source-fee 100% allocation total. No pool or liquidity action is verified.
Bounds. Fee-share allocation totals cannot exceed 100%.
Conflicts. Shares the selected fee source with other allocations.
Rejected or incomplete examples
Grow liquidity from fees.Rejected as unrecognized because a numeric share is missing.
Behavior Score and current edge
A fee branch labeled LIQUIDITY with effective percentage.
Current edge. Classic LP compounding is canonical strategy behavior, not this rule. No rule-controlled LP action, slippage handling, or custody path exists.
liquidityProviderRewardsLiquidity-provider rewardsAllocates a share of collected fees to liquidity providers.
+
Recognized instruction examples
Send 20% of fees to liquidity providers.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'liquidityProviderRewards', source, percent, shareOfFee? }- Required
- source, percent
- Optional
- shareOfFee
- Units
- percent is effective trade percentage; shareOfFee is percent of the collected source.
Valid structured example
{ type: 'liquidityProviderRewards', source: 'sellFee', percent: 0.4, shareOfFee: 20 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. The share participates in the source-fee 100% allocation total. Provider eligibility is not validated.
Bounds. Fee-share allocation totals cannot exceed 100%.
Conflicts. Shares the selected fee source with other allocations.
Rejected or incomplete examples
Reward liquidity providers.Rejected as unrecognized because a numeric share and fee source are not expressed.
Behavior Score and current edge
A fee branch labeled LIQUIDITY PROVIDERS.
Current edge. Provider eligibility and reward accounting are not implemented.
Milestone rules
buyerRewardsBuyer milestone rewardRepresents a reward for every Nth buyer, the first N buyers, or every buyer.
+
Recognized instruction examples
Reward every 100th buyer with 1,000 MOG.
Reward the first 100 buyers with 10 MOG.
Give every buyer 10 points.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'buyerRewards', mode, everyNthBuyer?/firstBuyers?, rewardType?, rewardAmount?, rewardTicker?, reward }- Required
- reward plus the count implied by mode
- Optional
- reward type, amount, ticker until completed
- Units
- buyer counts are whole-event intervals; rewardAmount uses token units or points according to rewardType.
Valid structured example
{ type: 'buyerRewards', mode: 'everyNth', everyNthBuyer: 100, rewardType: 'token', rewardAmount: 1000, rewardTicker: 'MOG' }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. A missing reward amount is marked incomplete. No maximum buyer count or reward amount is enforced.
Bounds. No numeric upper bound; missing reward amount is marked incomplete.
Conflicts. No cross-milestone conflict check.
Rejected or incomplete examples
Reward every 100th buyer.Recognized but incomplete because the reward amount is missing.
Behavior Score and current edge
A numbered milestone track ending at the configured buyer count and reward.
Current edge. ‘Reward every 100th buyer’ parses but cannot be locally created until an amount is supplied.
Liquidity rules
liquidityLockLiquidity lockRepresents a period during which liquidity removal should not be allowed.
+
Recognized instruction examples
Lock liquidity for 30 days.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'liquidityLock', durationDays }- Required
- durationDays
- Optional
- none
- Units
- durationDays is calendar-day duration in the frontend model.
Valid structured example
{ type: 'liquidityLock', durationDays: 30 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. The editor prevents negative input. The validator has no maximum and does not compare the lock with early-removal rules.
Bounds. The editor prevents negative input; no maximum or deployment-level check exists.
Conflicts. No explicit conflict check with early-removal behavior.
Rejected or incomplete examples
Lock liquidity.Rejected as unrecognized because the duration is missing.
Behavior Score and current edge
A plain-language LIQUIDITY statement.
Current edge. No lock contract, custody mechanism, or enforcement exists.
earlyLiquidityRemovalFeeEarly liquidity-removal feeRepresents a fee when liquidity is removed before a configured day threshold.
+
Recognized instruction examples
Charge 5% if liquidity is removed before 30 days.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'earlyLiquidityRemovalFee', percent, beforeDays }- Required
- percent, beforeDays
- Optional
- none
- Units
- percent is percentage points; beforeDays is a day threshold.
Valid structured example
{ type: 'earlyLiquidityRemovalFee', percent: 5, beforeDays: 30 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. No dedicated percentage or duration bound and no conflict check against a liquidity lock exist today.
Bounds. No domain-specific fee maximum is currently validated.
Conflicts. No explicit conflict check with liquidity lock.
Rejected or incomplete examples
Charge a fee for early liquidity removal.Rejected as unrecognized because the percentage and day threshold are missing.
Behavior Score and current edge
A plain-language LIQUIDITY statement.
Current edge. The current app cannot observe or charge liquidity removal.
Limit rules
maximumBuyMaximum buyRepresents a per-buy maximum in supply percent, token amount, or ETH, optionally for an early window.
+
Recognized instruction examples
Nobody can buy more than 1% of supply at once.
Nobody can buy more than 1 ETH at once.
Limit buys to 1% of supply for the first hour.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'maximumBuy', percentOfSupply, amount?, unit?, durationMinutes? }- Required
- percentOfSupply (legacy/canonical field)
- Optional
- amount, unit, durationMinutes
- Units
- amount uses the selected unit: percent of supply, token units, or ETH; durationMinutes is minutes.
Valid structured example
{ type: 'maximumBuy', percentOfSupply: 1, amount: 1, unit: 'supplyPercent' }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. A supply-percent maximum above maxWallet produces a warning. There is no domain-specific maximum.
Bounds. No upper bound; editor prevents negative input.
Conflicts. Warns when a supply-percent max buy exceeds max wallet.
Rejected or incomplete examples
Limit large buys during launch.Recognized with placeholder values but marked incomplete because the limit is unspecified.
Behavior Score and current edge
MAX BUY value and unit.
Current edge. ETH/token units leave percentOfSupply at 0 for storage compatibility.
maximumSellMaximum sellRepresents a per-sell maximum in supply percent, token amount, or ETH, optionally for an early window.
+
Recognized instruction examples
Nobody can sell more than 0.5% of supply at once.
Limit sells to 0.5% of supply for the first day.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'maximumSell', percentOfSupply, amount?, unit?, durationMinutes? }- Required
- percentOfSupply (legacy/canonical field)
- Optional
- amount, unit, durationMinutes
- Units
- amount uses the selected unit: percent of supply, token units, or ETH; durationMinutes is minutes.
Valid structured example
{ type: 'maximumSell', percentOfSupply: 0.5, amount: 0.5, unit: 'supplyPercent' }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. No maximum-sell bound or cross-limit conflict is implemented; the editor prevents negative input.
Bounds. No upper bound; editor prevents negative input.
Conflicts. No explicit cross-limit conflict check.
Rejected or incomplete examples
Limit sells.Rejected as unrecognized because an amount and unit are missing.
Behavior Score and current edge
MAX SELL value and unit.
Current edge. A Classic pool and Uniswap route do not enforce this stored limit.
maxWalletMaximum walletRepresents a maximum percentage of total supply that one wallet may hold.
+
Recognized instruction examples
No wallet can hold more than 2% of supply.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'maxWallet', percentOfSupply }- Required
- percentOfSupply
- Optional
- none
- Units
- percentOfSupply is percentage points of total supply.
Valid structured example
{ type: 'maxWallet', percentOfSupply: 2 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. A lower maxWallet than maximumBuy produces a warning. No upper bound is implemented.
Bounds. No upper bound; editor prevents negative input.
Conflicts. Warns when a maximum buy could exceed this wallet limit.
Rejected or incomplete examples
Keep wallet holdings small.Rejected as unrecognized because a percentage is missing.
Behavior Score and current edge
MAX WALLET percentage of supply.
Current edge. No wallet balances or transfer enforcement are connected.
minimumTradeMinimum tradeRepresents a minimum buy, sell, or both in ETH or token units.
+
Recognized instruction examples
Don't allow buys below 0.01 ETH.
No trades below 100 tokens.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'minimumTrade', amount, asset, side }- Required
- amount, asset, side
- Optional
- none
- Units
- amount is ETH or token units; side is buy, sell, or both.
Valid structured example
{ type: 'minimumTrade', amount: 0.01, asset: 'ETH', side: 'buy' }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. The editor prevents negative input. No upper bound or comparison with maximum-trade rules exists.
Bounds. No domain-specific upper bound; editor prevents negative input.
Conflicts. No explicit check against maximum trade rules.
Rejected or incomplete examples
Block tiny trades.Rejected as unrecognized because a side, amount, and unit are missing.
Behavior Score and current edge
MIN BUY, MIN SELL, or MIN BOTH with asset.
Current edge. The stored minimum is not passed to or enforced by Classic routing.
cooldownTrade cooldownRepresents a wait between repeated buys, sells, or trades by the same wallet.
+
Recognized instruction examples
Wait 30 seconds before the same wallet can sell again.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'cooldown', seconds, action }- Required
- seconds, action
- Optional
- none
- Units
- seconds is elapsed wall-clock seconds; action is buy, sell, or trade.
Valid structured example
{ type: 'cooldown', seconds: 30, action: 'sell' }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. The editor prevents negative input. No maximum or relationship to another timing rule is checked.
Bounds. No maximum; editor prevents negative input.
Conflicts. No explicit conflict check.
Rejected or incomplete examples
Add a cooldown between sells.Rejected as unrecognized because a duration is missing.
Behavior Score and current edge
Action cooldown and seconds.
Current edge. Wallet identity and action history are not connected.
Access rules
accessRestrictionAccess restrictionRepresents approved-wallet, token-holder, or NFT-holder access for buying, trading, or adding liquidity.
+
Recognized instruction examples
Only approved wallets can buy.
Only holders of TOKEN can trade.
Only holders of PASS NFT can buy.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'accessRestriction', requirement, action?, accessType?, tokenTicker? }- Required
- requirement
- Optional
- action, accessType, tokenTicker
- Units
- No numeric unit. requirement and action are labels; tokenTicker is an identifier.
Valid structured example
{ type: 'accessRestriction', requirement: 'approved wallets', action: 'buy', accessType: 'approvedWallets' }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. No allowlist contents, balance, token standard, ownership, or composition of multiple restrictions is validated.
Bounds. No list, balance, token-standard, or ownership validation.
Conflicts. Multiple access rules are not composed or checked for contradiction.
Rejected or incomplete examples
Only selected wallets can buy.Rejected as unrecognized because ‘selected’ does not map to the supported approved-wallet pattern.
Behavior Score and current edge
A plain-language ACCESS statement.
Current edge. ‘Approved wallets’ has no list editor or onchain source today.
Protection rules
volatilityProtectionVolatility protectionRepresents pausing sells after a configured price move within a time window.
+
Recognized instruction examples
Increase protection when price moves too quickly.
These examples are parser fixtures, not an exhaustive grammar.
Normalized representation
{ type: 'volatilityProtection', movePercent, windowMinutes, pauseMinutes }- Required
- movePercent, windowMinutes, pauseMinutes
- Optional
- none
- Units
- movePercent is percentage points; windowMinutes and pauseMinutes are minutes.
Valid structured example
{ type: 'volatilityProtection', movePercent: 10, windowMinutes: 5, pauseMinutes: 5 }The structured object—not the sentence—is what the current frontend reviews, stores, and visualizes.
Validation and relationships
Implemented validation. The natural-language pattern inserts placeholder thresholds and marks the rule incomplete. No oracle or domain-specific bounds exist.
Bounds. The natural-language pattern inserts 10% / 5 min / 5 min defaults and marks thresholds incomplete; no domain-specific validation exists.
Conflicts. No oracle, fee, or other protection conflicts are checked.
Rejected or incomplete examples
Pause sells when volatility spikes.Recognized only as an incomplete volatility rule; thresholds must be completed in the editor.
Behavior Score and current edge
A plain-language PROTECTION statement.
Current edge. The broad phrase is intentionally incomplete; there is no price oracle or pause mechanism.