> For the complete documentation index, see [llms.txt](https://docs.lpp-minduniverse.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.lpp-minduniverse.org/lingua-pactum-protocol-lpp-documentation/14.-appendix/14.4-permit-lifecycle-state-machine.md).

# 14.4 Permit Lifecycle State Machine

The current public sources define Permit behavior operationally rather than as a separate universal enum.

The canonical public lifecycle is therefore event-based:

```
No Permit
   │
   │ successful Layer 0 ADMIT
   ▼
Permit Minted
   │
   │ presented to execution boundary
   ▼
Permit Verification
   │
   ├── signature invalid ──────────→ BLOCK
   │
   ├── expired ────────────────────→ BLOCK
   │
   ├── authority revoked ──────────→ BLOCK
   │
   ├── intent mismatch ────────────→ BLOCK
   │
   ├── scope mismatch ─────────────→ BLOCK
   │
   ├── policy mismatch ────────────→ BLOCK
   │
   ├── replay / consumed nonce ────→ BLOCK
   │
   └── all checks valid
                │
                ▼
             EXECUTE
                │
                ▼
        Nonce / Permit Consumed
                │
                ▼
         Artifact Retained
```

A Permit may also become unusable without execution because:

```
Time expires
```

or:

```
Upstream authority becomes invalid
```

or:

```
Admission-relevant intent materially changes
```

The important lifecycle distinction is:

```
Permit
=
short-lived operational authorization
```

while:

```
Admission Artifact
=
retained historical evidence
```
