> ## Documentation Index
> Fetch the complete documentation index at: https://docs.x402r.org/llms.txt
> Use this file to discover all available pages before exploring further.

# PayerCondition

> Singleton condition that restricts operator actions to the payment payer address

## Overview

PayerCondition is a singleton condition that restricts an action to the payment's payer address.

**Type:** Singleton, CREATE2 (deployed once, reused by all operators)

**Address (all supported chains):** `0x586486394C38A2a7d36B16a3FDaF366cd202d823`

## Logic

```solidity theme={null}
function check(PaymentInfo calldata payment, uint256, address caller, bytes calldata)
    external pure returns (bool)
{
    return caller == payment.payer;
}
```

The condition compares `caller` against `payment.payer`, pure computation with no storage reads.

## When to Use

| Slot                             | Use Case                                            |
| -------------------------------- | --------------------------------------------------- |
| `AUTHORIZE_PRE_ACTION_CONDITION` | Let payer create payments (subscriptions, invoices) |
| `VOID_PRE_ACTION_CONDITION`      | Let payer request refunds during escrow             |
| `REFUND_PRE_ACTION_CONDITION`    | Let payer cancel streams                            |

<Note>
  Typically paired with [ReceiverCondition](/contracts/conditions/receiver) for capture, since payers shouldn't capture their own funds in most configurations.
</Note>

## Gas

**Cost:** Minimal, `pure` function with no storage reads.

## Next Steps

<CardGroup cols={2}>
  <Card title="ReceiverCondition" icon="store" href="/contracts/conditions/receiver">
    Restrict actions to the payment receiver.
  </Card>

  <Card title="Combinators" icon="puzzle-piece" href="/contracts/conditions/combinators">
    Combine PayerCondition with other conditions.
  </Card>
</CardGroup>
