Skip to main content

Overview

AlwaysTrueCondition allows anyone to call the action — no restrictions applied. Type: Singleton (deployed once, reused by all operators) Address (Base Sepolia): 0x785cC83DEa3d46D5509f3bf7496EAb26D42EE610 Address (Base Mainnet): 0xc9BbA6A2CF9838e7Dd8c19BC8B3BAC620B9D8178

Logic

function check(PaymentInfo calldata payment, uint256, address caller)
    external pure returns (bool)
{
    return true;
}

When to Use

SlotUse Case
AUTHORIZE_CONDITIONLet anyone create payments (common for marketplace/e-commerce)
Use with caution for release/refund slots. Setting RELEASE_CONDITION or REFUND_IN_ESCROW_CONDITION to AlwaysTrueCondition means anyone can release or refund funds. This is functionally equivalent to leaving the slot as address(0) (the default behavior), but makes the intent explicit.

AlwaysTrueCondition vs address(0)

Both allow any caller, but there’s a subtle difference:
address(0)AlwaysTrueCondition
BehaviorSkips condition check entirelyCalls check() which returns true
GasSlightly cheaper (no external call)Minimal overhead (~200 gas)
Intent”No condition configured""Explicitly open to all”
Use address(0) when you simply don’t need a condition. Use AlwaysTrueCondition when you want to make the “open access” intent explicit in your configuration.

Gas

Cost: Minimal — pure function returning a constant.

Next Steps