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

# Creator console

> Per-token cockpit — HP, fees, metadata, admin transfer

## admin-console — structured facts

| Field            | Value                             |
| ---------------- | --------------------------------- |
| route            | `/token/[address]/admin`          |
| read\_visibility | public (no auth required to view) |
| edit\_visibility | admin wallet only                 |

### Auth states

| State          | Trigger                                     | Edit allowed       |
| -------------- | ------------------------------------------- | ------------------ |
| `DISCONNECTED` | no wallet connected                         | no                 |
| `READ_ONLY`    | connected wallet ≠ admin and ≠ pendingAdmin | no                 |
| `PENDING`      | connected wallet == pendingAdmin            | only `acceptAdmin` |
| `ADMIN`        | connected wallet == admin                   | yes                |

### Admin write actions

| Function                                           | Auth               | Notes                                       |
| -------------------------------------------------- | ------------------ | ------------------------------------------- |
| `CreatorRegistry.setMetadataURI(token, uri)`       | current admin      | reverts on empty URI                        |
| `CreatorRegistry.setCreatorRecipient(token, addr)` | current admin      | reverts on zero address; reentrancy-guarded |
| `CreatorRegistry.nominateAdmin(token, newAddr)`    | current admin      | sets `pendingAdmin`; idempotent             |
| `CreatorRegistry.cancelNomination(token)`          | current admin      | clears `pendingAdmin`                       |
| `CreatorRegistry.acceptAdmin(token)`               | pending admin only | atomic handover; clears `pendingAdmin`      |
| `CreatorFeeDistributor.claim(token)`               | creator            | pays `recipientOf(token)`                   |

### HP component → UI label mapping

Translate before display. Never expose internal field names.

| Internal field    | UI label           |
| ----------------- | ------------------ |
| `velocity`        | Buying activity    |
| `effectiveBuyers` | Real participants  |
| `stickyLiquidity` | Liquidity strength |
| `retention`       | Holder conviction  |
| `momentum`        | Momentum           |

### HP source

Read live from the indexer:

```http theme={null}
GET /tokens
```

Each token row carries `hp` and `components.{velocity,effectiveBuyers,stickyLiquidity,retention,momentum}`
on a 0–1 scale, plus `weights` for the active phase.

### Bag-lock auth (not transferrable via admin transfer)

Bag-lock keys off `CreatorRegistry.creatorOf(token)`, NOT `adminOf`.
Admin transfers do not carry the bag-lock right. See
[Bag-lock](/creators/bag-lock).
