> ## 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.

# StaticAddressCondition

> Restrict operator actions to a specific designated address via immutable check

## Overview

StaticAddressCondition restricts an action to a single designated address. Unlike PayerCondition and ReceiverCondition (which read from payment data), this condition checks against an immutable address set at deployment.

**Type:** Per-deployment (deploy one per designated address via [factory](/contracts/factories))

## Logic

```solidity theme={null}
contract StaticAddressCondition is ICondition {
    address public immutable DESIGNATED_ADDRESS;

    constructor(address _designatedAddress) {
        DESIGNATED_ADDRESS = _designatedAddress;
    }

    function check(PaymentInfo calldata payment, uint256, address caller, bytes calldata)
        external view returns (bool)
    {
        return caller == DESIGNATED_ADDRESS;
    }
}
```

## When to Use

| Role                   | Description                                          |
| ---------------------- | ---------------------------------------------------- |
| **Arbiter**            | Deploy with arbiter address for dispute resolution   |
| **Service Provider**   | Deploy with provider address for subscriptions       |
| **DAO Treasury**       | Deploy with multisig address for governance          |
| **Compliance Officer** | Deploy with compliance address for approvals         |
| **Platform**           | Deploy with platform address for controlled releases |

## Example

Deploy via [StaticAddressConditionFactory](/contracts/factories):

```typescript theme={null}
// For marketplace arbiter
const arbiterCondition = await staticAddressConditionFactory.write.deploy([arbiterAddress]);

// For subscription service provider
const providerCondition = await staticAddressConditionFactory.write.deploy([serviceProviderAddress]);

// For DAO governance, same address produces the same deterministic deployment (idempotent)
const daoCondition = await staticAddressConditionFactory.write.deploy([daoMultisigAddress]);
```

## Gas

**Cost:** Minimal. `view` function with a single `immutable` read (compiled as a constant in bytecode, not a storage read).

## Next Steps

<CardGroup cols={2}>
  <Card title="Factories" icon="industry" href="/contracts/factories">
    Deploy StaticAddressCondition via factory.
  </Card>

  <Card title="Combinators" icon="puzzle-piece" href="/contracts/conditions/combinators">
    Compose with other conditions using And/Or/Not.
  </Card>
</CardGroup>
