Disabling Gasless Voting
How to turn off gasless voting for your DAO
Disabling Gasless Voting
This guide covers how to disable gasless voting, either temporarily or permanently, and the implications for your DAO.
When to Disable
Temporary Disable
You might temporarily disable gasless voting for:
- Maintenance - Paymaster upgrades or migrations
- Budget Constraints - Treasury needs reallocation
- Abuse Prevention - Responding to spam or attacks
- Testing - Troubleshooting voting issues
Permanent Disable
Reasons to permanently disable:
- Cost Reduction - Gasless not economically viable
- Low Adoption - Users prefer paying their own gas
- Migration - Moving to different voting mechanism
- Security - Concerns about paymaster vulnerabilities
Disabling Process
Step 1: Access Settings
- Go to your DAO dashboard
- Navigate to Settings > Gasless Voting
- Locate the enable/disable toggle
┌─────────────────────────────────────────────────────────────┐
│ Gasless Voting Settings │
├─────────────────────────────────────────────────────────────┤
│ │
│ Status: ● Enabled │
│ │
│ Paymaster: 0x1234...5678 │
│ Balance: 5.25 ETH │
│ Total Votes: 1,234 sponsored │
│ │
│ [Disable Gasless Voting] │
│ │
└─────────────────────────────────────────────────────────────┘Step 2: Choose Disable Type
Select temporary or permanent disable:
┌─────────────────────────────────────────────────────────────┐
│ Disable Gasless Voting │
├─────────────────────────────────────────────────────────────┤
│ │
│ ○ Temporary Pause │
│ Pause gas sponsorship but keep paymaster funded │
│ Can re-enable instantly │
│ │
│ ○ Disable with Withdrawal │
│ Disable and withdraw remaining paymaster funds │
│ Requires re-setup to enable again │
│ │
│ ● Full Disable │
│ Disable, withdraw funds, and remove paymaster │
│ Complete removal of gasless infrastructure │
│ │
└─────────────────────────────────────────────────────────────┘Step 3: Handle Pending Operations
Check for in-flight operations:
┌─────────────────────────────────────────────────────────────┐
│ Pending Operations │
├─────────────────────────────────────────────────────────────┤
│ │
│ ⚠ There are 3 pending gasless votes │
│ │
│ │ User │ Proposal │ Status │ Submitted │ │
│ ├────────────────┼──────────┼───────────┼─────────────┤ │
│ │ 0xABC...123 │ #42 │ Pending │ 2 min ago │ │
│ │ 0xDEF...456 │ #42 │ Pending │ 1 min ago │ │
│ │ 0xGHI...789 │ #43 │ Pending │ 30 sec ago │ │
│ │
│ Options: │
│ ● Wait for pending operations to complete │
│ ○ Force disable (pending operations will fail) │
│ │
└─────────────────────────────────────────────────────────────┘Step 4: Confirm Disable
Review impact and confirm:
┌─────────────────────────────────────────────────────────────┐
│ Confirm Disable │
├─────────────────────────────────────────────────────────────┤
│ │
│ You are about to disable gasless voting. │
│ │
│ Impact: │
│ • Voters will need ETH to pay gas │
│ • Participation may decrease │
│ • Mobile/new users may have difficulty │
│ │
│ Reversible: Yes (can re-enable) │
│ Paymaster Funds: 5.25 ETH (will be withdrawn) │
│ Withdrawal To: DAO Treasury │
│ │
│ ⚠ Notify community before disabling │
│ │
│ [Cancel] [Confirm Disable] │
│ │
└─────────────────────────────────────────────────────────────┘Temporary Pause (Recommended First Step)
Pause Without Withdrawal
Keep funds in place but stop sponsoring:
pause:
type: temporary
keep_funds: true
duration: indefinite # or set time limit
reason: "Maintenance window"Benefits:
- Instant re-enable
- No fund movement needed
- Lower risk
Pause via Contract
Directly pause the paymaster:
// Pause paymaster sponsorship
IPaymaster paymaster = IPaymaster(paymasterAddress);
paymaster.pause();
// Re-enable later
paymaster.unpause();Time-Limited Pause
Set automatic re-enable:
scheduled_pause:
start: "2026-02-01T00:00:00Z"
end: "2026-02-03T00:00:00Z"
reason: "Planned maintenance"
notify_users: trueFull Disable with Withdrawal
Withdraw Paymaster Funds
- Disable gasless voting
- Withdraw remaining funds
- Funds return to treasury or specified address
┌─────────────────────────────────────────────────────────────┐
│ Withdrawal Summary │
├─────────────────────────────────────────────────────────────┤
│ │
│ Paymaster Balance: 5.25 ETH │
│ Reserved (pending): 0.05 ETH │
│ Available: 5.20 ETH │
│ │
│ Withdraw To: DAO Treasury (0xTreas...ury) │
│ │
│ Transaction: 0xabc123... (pending) │
│ │
│ [View on Explorer] │
│ │
└─────────────────────────────────────────────────────────────┘Governance-Required Disable
For DAOs requiring governance approval:
proposal:
title: "Disable Gasless Voting"
type: governance_parameter
actions:
- action: disable_gasless
- action: withdraw_paymaster
amount: all
destination: treasury
rationale: |
Due to budget constraints, we propose disabling gasless
voting and reallocating the 5.25 ETH to the grants program.Communication
Notify Users Before Disabling
Always communicate changes to your community before disabling gasless voting.
Announcement Template:
## Gasless Voting Update
We will be disabling gasless voting on [DATE].
**Why:**
[Reason for disabling]
**What this means:**
- You will need ETH in your wallet to vote
- Vote transactions will cost approximately $X
- All other governance features remain the same
**Timeline:**
- [Date]: Announcement
- [Date]: Gasless disabled
- [Date]: Review decision
**Questions?**
Join the discussion in #governanceUpdate UI Messaging
Ensure the voting interface reflects the change:
┌─────────────────────────────────────────────────────────────┐
│ Vote on Proposal #42 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Grant $50,000 to Research Committee │
│ │
│ Your Voting Power: 10,000 veLUX │
│ │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ FOR │ │ AGAINST │ │ ABSTAIN │ │
│ └────────────┘ └────────────┘ └────────────┘ │
│ │
│ ℹ Gas Required: ~$3.00 (0.001 ETH) │
│ Your ETH Balance: 0.5 ETH ✓ │
│ │
└─────────────────────────────────────────────────────────────┘Re-Enabling Gasless Voting
From Paused State
If you only paused (no withdrawal):
- Go to Settings > Gasless
- Click Resume Gasless Voting
- Confirm
// Or via contract
paymaster.unpause();Full Re-Setup
If you withdrew funds or removed paymaster:
- Follow the Setup Guide
- Deploy new paymaster (or reuse existing)
- Fund the paymaster
- Configure policies
- Enable gasless voting
Impact Analysis
Before Disabling, Consider:
impact_analysis:
voter_participation:
current_turnout: 45%
estimated_after_disable: 30% # -15%
affected_users: ~500 (no ETH balance)
cost_to_voters:
avg_gas_per_vote: 0.003 ETH
at_current_prices: ~$9/vote
alternatives:
- provide_voting_eth_faucet
- offer_vote_reimbursement
- use_offchain_snapshotPost-Disable Monitoring
Track metrics after disabling:
monitor:
metrics:
- voter_turnout
- unique_voters
- proposal_quorum_rate
- user_complaints
comparison:
period: 30 days before vs after
alert_threshold: 20% drop in participationAlternative Approaches
Partial Gasless
Instead of full disable, limit gasless:
partial_gasless:
eligibility:
min_voting_power: 1000 veLUX # Raise threshold
max_votes_per_proposal: 1
rate_limit: 5 votes/week
cap:
daily_budget: 0.5 ETH
monthly_budget: 10 ETHVote Subsidies
Offer partial reimbursement instead:
vote_subsidy:
enabled: true
coverage: 50% # DAO pays half
max_per_vote: 0.002 ETH
monthly_cap: 5 ETHOffchain Voting
Use Snapshot for signaling, onchain for execution:
hybrid_voting:
signaling: snapshot (free)
binding: onchain (gas required)
threshold: constitutional proposals onlyChecklist
Before Disabling
checklist:
- [ ] Analyze participation impact
- [ ] Check for pending operations
- [ ] Plan fund withdrawal
- [ ] Draft community announcement
- [ ] Update documentation
- [ ] Prepare UI changesDuring Disable
checklist:
- [ ] Wait for pending operations
- [ ] Pause/disable paymaster
- [ ] Withdraw funds (if applicable)
- [ ] Verify disable successful
- [ ] Publish announcementAfter Disabling
checklist:
- [ ] Monitor participation rates
- [ ] Respond to user questions
- [ ] Track support tickets
- [ ] Review metrics weekly
- [ ] Evaluate re-enabling if needed