Matador Docs
DAO Treasury Ops

Recipe - Optimistic Grants

Auto-approve grants unless challenged.

Recipe: Optimistic Grants

This policy allows a Grant Committee to approve a grant instantly, but enforces a Challenge Window (e.g., 3 days) before funds can move. During this window, the DAO can veto.

The Strategy

Initiate: Committee "queues" a grant.

Wait: Funds are locked for 3 days.

Finalize: If no veto occurs, anyone can trigger the payout.

Challenge windows keep you safe

A short veto period preserves oversight without slowing routine grants.

The Policy

permission OptimisticGrantGuard -> 1.0.0 {
    parameters: {
        committee: address,
        vetoRole: address,
        grantId: uint256,
        unlockTimestamp: uint256
    }

    when: {
        any {
            // Queue grant
            all {
                context.caller == parameters.committee,
                calldata.grantId == parameters.grantId
            },
            // Veto grant
            all {
                context.caller == parameters.vetoRole,
                calldata.grantId == parameters.grantId
            },
            // Claim grant after the challenge window
            all {
                context.caller == parameters.committee,
                calldata.grantId == parameters.grantId,
                context.timestamp >= parameters.unlockTimestamp
            }
        }
    }
}

Integration

This pattern reduces governance fatigue. The DAO only needs to pay attention if something looks wrong. Otherwise, execution happens automatically.

On this page