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

# IPolicyRegistry.policyAdmin

> Returns the current admin of a policy in the Policy Registry.

## Signature

```solidity IPolicyRegistry.sol theme={null}
function policyAdmin(uint64 policyId) external view returns (address);
```

| Field               | Value                 |
| ------------------- | --------------------- |
| Selector            | `0x09dd0a47`          |
| Canonical signature | `policyAdmin(uint64)` |

## Description

Never reverts. Returns `address(0)` for any ID that has no admin, including sentinels and IDs that have never been created.

After `renounceAdmin`, no address can be assigned as admin again. `policyAdmin` returns `address(0)` permanently for that policy.

During a pending admin transfer, `policyAdmin` still returns the **current** admin. The staged nominee is readable via `pendingPolicyAdmin`. Administration transfers only when the nominee calls `finalizeUpdateAdmin`.

## Parameters

| Name       | Type     | Description          |
| ---------- | -------- | -------------------- |
| `policyId` | `uint64` | The policy to query. |

## Returns

The current admin address, or `address(0)` for built-in sentinels (`ALWAYS_ALLOW`, `ALWAYS_BLOCK`), renounced policies, unknown IDs, and malformed IDs.

## Access Control

View, no role required.

## Example

```solidity Usage Example theme={null}
address admin = IPolicyRegistry(registry).policyAdmin(policyId);
```
