Special Window Protocol

Autopilot uses a defined execution window at the end of each epoch to ensure voting, claiming, and swapping actions are processed securely and consistently.

This mechanism protects against timing-based manipulation, ensures fair participation, and aligns reward distribution with the latest on-chain state across both Base (Aerodrome) and Optimism (Velodrome) networks.


🕒 Timing Structure

Each supported protocol includes its own Special Window — the period when Autopilot performs all automated operations and user interactions are paused.

Aerodrome (Base): Total window length — 3 hours and 30 minutes

  • Pre-Epoch Window: Begins 3 hours before epoch end → Deposits made during this time count toward the next epoch → Withdrawals are blocked → Bot operations (voting, claiming, swapping) begin

  • Post-Epoch Window: Lasts 30 minutes after the new epoch starts → Bot logic completes reward processing → User actions remain paused to avoid state conflicts

Velodrome (Optimism): Total window length — 13 hours

  • Pre-Epoch Window: Begins 5 hours before epoch end

  • Post-Epoch Window: Extends 8 hours after epoch start The longer window ensures safe multi-chain swaps and bridging, allowing enough time for reward settlement between Optimism and Base networks.

This time-bound design guarantees that deposits or exits cannot interfere with reward execution mid-cycle and that all users are treated fairly within each epoch.


🔐 Special Window Behavior

⛔ User Actions Blocked

  • Deposits and withdrawals are disabled during each protocol’s Special Window.

  • Prevents users from joining too late or exiting too early relative to reward timing.

  • Enforced by: isInSpecialWindowOrFail()

🤖 Bot Actions Allowed During this window, protocol contracts are authorized to execute automated functions:

  • vote() — submits votes based on the live strategy model

  • claim() and claimBribes() — collects all earned rewards

  • swap() — converts all reward tokens to USDC using internal routing

All actions execute automatically and in sequence under predefined logic.


🛠️ Snapshot & Sync

Autopilot maintains on-chain accuracy and reward integrity through:

  • Emergency Snapshots: Captures voting power and reward eligibility before user or bot actions.

  • Epoch Synchronization: If a transaction is delayed or missed, the system auto-detects and re-aligns for the next epoch, ensuring continuous participation.


🟢 Behavior Outside the Special Window

Outside of the defined execution windows:

  • Users can deposit and withdraw freely.

  • All bot operations are paused.

  • Strategy logic remains idle until the next window begins.

This separation ensures all on-chain operations remain deterministic, trackable, and conflict-free between epochs.


🔄 Synchronization Logic

To maintain accurate reward calculations, Autopilot implements:

  • Per-epoch weight tracking: Stored via total_tracked_weight[epoch_id] to record each user’s voting power snapshot.

  • Fallback handling: If any epoch process fails or is skipped, the protocol automatically resumes in the next cycle with no user action required.

  • Snapshot before each action: Ensures all operations reference the correct state: emergencySnapshot()

Last updated