> ## Documentation Index
> Fetch the complete documentation index at: https://base-a060aa97-docs-sync-code-change-be6d045.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# IPolicyRegistry.compositePolicyChildIds

> Returns the child-policy set of a composite policy.

## Signature

```solidity IPolicyRegistry.sol theme={null}
function compositePolicyChildIds(uint64 policyId) external view returns (uint64[] memory);
```

| Field               | Value                             |
| ------------------- | --------------------------------- |
| Selector            | `0x7c40df74`                      |
| Canonical signature | `compositePolicyChildIds(uint64)` |

## Description

Returns the ordered child-policy ID set of the composite identified by `policyId`.

* Child policies are returned in the order they were last written; the registry preserves caller ordering verbatim without sorting or de-duplicating.
* Returns an empty array for simple policies, built-in sentinels (`ALWAYS_ALLOW`, `ALWAYS_BLOCK`), unknown IDs, and malformed IDs.
* Never reverts.
* An empty return unambiguously means "not a composite".

## Parameters

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

## Returns

| Type              | Description                                                           |
| ----------------- | --------------------------------------------------------------------- |
| `uint64[] memory` | Child policy IDs, or an empty array if `policyId` is not a composite. |

## Access Control

Read-only. Always callable regardless of whether the PolicyRegistry feature is active.

## Example

```solidity Usage Example theme={null}
uint64[] memory children = IPolicyRegistry(registry).compositePolicyChildIds(policyId);
```
