# §48.10 Settlement Venue Sub-Registry — Operator Guide

## What this is

The Settlement Venue Sub-Registry (§48.10) lets Central Banks register their CBDC settlement infrastructure on the Setix platform. Once a venue is admitted, BANKER agents with the `CBDC_SETTLEMENT (0x4000)` service bit can use it as the settlement leg in Cross-Ledger Escrows, enabling agents to pay in CBDC instead of (or alongside) COSR.

## Tools

| Tool | Who calls it | What it does |
|---|---|---|
| `thread.admit_settlement_venue` | Central Bank operator | Register a new venue |
| `thread.query_settlement_venue` | Any agent | Fetch a venue by id |
| `thread.list_settlement_venues` | Any agent | List venues, optionally filtered |

## Admission flow

1. **Prepare** two Witness Attestation refs (`cb_witness_attestation_ref_1_hex`, `cb_witness_attestation_ref_2_hex`). These are P21 dual-anchor references — each must point to a `§48.14 Witness Authority` entry from a distinct jurisdiction that attests the Central Bank's identity. Without both refs, admission rejects with `AUTHORITY_SOVEREIGN_UNVERIFIED`.

2. **Call `thread.admit_settlement_venue`** with your Central Bank's `secret_key_hex`. The bridge derives your `central_bank_authority_id` from the key. Fill in all fields:
   - `jurisdiction_code` — ISO-3166 alpha-2 (e.g. `"AE"`, `"CN"`)
   - `native_currency_code` — ISO 4217 (e.g. `"AED"`, `"CNY"`)
   - `native_decimals` — base-unit precision (e.g. `2` for fils, `6` for SPL-tokenized CBDC)
   - `ledger_type` — technology code 0–7 (see below)
   - `ledger_type_detail_hash_hex` — SHA-256 of your onboarding doc (64 hex chars)
   - `ledger_type_detail_uri` — where the doc lives
   - `finality_semantics` — 0=instant, 1=probabilistic, 2=deterministic_at_block, 3=ack_based
   - `finality_confirmation_depth` — blocks to wait (0 if finality=instant or deterministic_at_block)
   - `settlement_attestation_pubkey_hex` — Ed25519 pubkey (64 hex chars) used to co-sign Settlement Attestations
   - `reserve_attestation_cadence_slots` — max slots between Reserve Attestations (e.g. `216000` ≈ 24 h)
   - `authorized_operator_agent_id_hexes` — optional initial list of BANKER agent IDs authorized to operate on this venue

3. **On success**, the bridge returns `{ venue_id, central_bank_authority_id_hex, jurisdiction_code, native_currency_code, status: "admitted" }`. The `venue_id` is the integer handle for this venue in all subsequent operations.

### Ledger type codes

| Code | Name |
|---|---|
| 0 | `solana_spl` — wrapped CBDC as SPL token |
| 1 | `proprietary_dlt` — CBUAE Digital Dirham, eCNY central ledger |
| 2 | `corda` |
| 3 | `hyperledger_fabric` |
| 4 | `ethereum_l1` |
| 5 | `ethereum_l2` |
| 6 | `iso20022_rail_as_ledger` — FedNow, TIPS |
| 7 | `other_attested` |

## Querying venues

```
thread.query_settlement_venue  { "venue_id": 1 }
```

Returns the full venue record including `venue_state`, `authorized_operators`, and all admission fields.

## Listing venues

```
thread.list_settlement_venues  {}                           // all active
thread.list_settlement_venues  { "jurisdiction_code": "AE" } // filter by jurisdiction
thread.list_settlement_venues  { "venue_state": 1 }          // quarantined only
```

## Venue lifecycle

| State | Value | Meaning |
|---|---|---|
| active | 0 | New Cross-Ledger Escrows accepted; Reserve Attestations current |
| quarantined | 1 | Reserve Attestation lapsed; new escrows reject with `SETTLEMENT_VENUE_QUARANTINED`; existing escrows run to timelock |
| retired | 2 | Terminal; no new escrows admitted |

Quarantine triggers automatically when `reserve_attestation_cadence_slots × VENUE_QUARANTINE_ATTESTATION_MISS_MULTIPLIER` passes without a fresh Reserve Attestation from the Central Bank. Unquarantine: submit a fresh Reserve Attestation + CB AUTHORITY resume-signed registry update.

## Error catalog

| Error substring | Cause |
|---|---|
| `venue_already_registered` | The (jurisdiction_code, native_currency_code, ledger_type) triple is already admitted |
| `venue_not_found` | No venue with that venue_id |
| `AUTHORITY_SOVEREIGN_UNVERIFIED` | One or both P21 dual-anchor witness refs missing or invalid |
| `SETTLEMENT_VENUE_QUARANTINED` | Venue is quarantined; no new escrows |
| `BRIDGE_NOT_AUTHORIZED` | operator_agent_id not in the venue's authorized operator list |

## Cross-references

- §48.16 Settlement Platform Sub-Registry — multi-venue platform (e.g. mBridge) admits a cluster of §48.10 venues together
- §54.7 Reserve Attestation — the liveness signal that keeps venues from quarantining
- Cross-Ledger Escrow — uses `venue_id` as field 5 to route settlement to the correct CB ledger
- §48.14 Witness Authority Sub-Registry — where the P21 dual-anchor witness refs resolve
