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

# Overview

> Enforce compliance policies on users interacting with your application

Application Compliance enables financial technology companies to evaluate users against compliance policies before granting access to protected functionality.

Predicate handles policy evaluation offchain and returns signed cryptographic attestations which can be passed onchain with a users transaction to permit them.

## Integration Phases

<Steps>
  <Step title="Phase 1: Offchain Integration" icon="code">
    Set up your project, configure a policy, and integrate the Predicate API into your application. Policy evaluation works end-to-end without any smart contract deployment.
  </Step>

  <Step title="Phase 2: Onchain Enforcement" icon="shield-check">
    When you're ready to enforce compliance at the smart contract level, deploy a Predicate-enabled contract and update your offchain integration to submit attestations onchain.
  </Step>
</Steps>

***

## Phase 1: Offchain Integration

Get Predicate working in your application.

<Steps>
  <Step title="Dashboard Setup">
    Create your project, configure a policy, and generate API credentials.

    [Go to Dashboard Setup →](/v2/applications/dashboard-setup)
  </Step>

  <Step title="Offchain Integration">
    Integrate the Predicate API into your backend to evaluate users against your policy.

    [Go to Offchain Integration →](/v2/applications/offchain-integration)
  </Step>
</Steps>

After completing Phase 1, your application can evaluate compliance for any user and take action based on the result.

***

## Phase 2: Onchain Enforcement

Enforce compliance at the smart contract level.

<Steps>
  <Step title="Deploy Contract">
    Deploy a contract that inherits from `PredicateClient` and requires valid attestations.

    [Go to Onchain Enforcement →](/v2/applications/onchain-enforcement)
  </Step>

  <Step title="Update Offchain Integration">
    Modify your API calls to target your contract address and pass attestations to your contract functions.

    [Go to Onchain Integration →](/v2/applications/onchain-integration)
  </Step>
</Steps>

***

## Supported Blockchains

Onchain enforcement is available on any chain where the Predicate Registry has been deployed.

| Chain           | Address                                                                                                                              |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| Ethereum        | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://etherscan.io/address/0xe15a8Ca5BD8464283818088c1760d8f23B6a216E)              |
| Base            | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://basescan.org/address/0xe15a8Ca5BD8464283818088c1760d8f23B6a216E)              |
| Arbitrum        | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://arbiscan.io/address/0xe15a8Ca5BD8464283818088c1760d8f23B6a216E)               |
| Hyperliquid     | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://hyperevmscan.io/address/0xe15a8ca5bd8464283818088c1760d8f23b6a216e)           |
| Plume           | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://explorer.plume.org/address/0xe15a8Ca5BD8464283818088c1760d8f23B6a216E)        |
| BSC             | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://bscscan.com/address/0xe15a8Ca5BD8464283818088c1760d8f23B6a216E)               |
| Plasma          | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://plasmascan.to/address/0xe15a8Ca5BD8464283818088c1760d8f23B6a216E)             |
| World           | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://worldscan.org/address/0xe15a8Ca5BD8464283818088c1760d8f23B6a216E)             |
| Sepolia         | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://sepolia.etherscan.io/address/0xe15a8Ca5BD8464283818088c1760d8f23B6a216E)      |
| Base Sepolia    | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://sepolia.basescan.org/address/0xe15a8Ca5BD8464283818088c1760d8f23B6a216E)      |
| MegaETH         | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://mega.etherscan.io/address/0xe15a8Ca5BD8464283818088c1760d8f23B6a216E)         |
| MegaETH Testnet | [`0xe15a8Ca5BD8464283818088c1760d8f23B6a216E`](https://testnet-mega.etherscan.io/address/0xe15a8Ca5BD8464283818088c1760d8f23B6a216E) |
| Solana          | [`GjXtvmWihnf22Bg48srpzYrs6iGhSUvu1tzsf9L4u9Ck`](https://solscan.io/account/GjXtvmWihnf22Bg48srpzYrs6iGhSUvu1tzsf9L4u9Ck)            |
