# modules/agorapura/ — Identidad humana federada **Propósito.** Un ágora de identidad sin autoridad central. Cada identidad —persona, comunidad, alianza, institución— es una clave pública; cada afirmación sobre ella, un claim; cada respaldo, una atestación firmada que viaja con su propia prueba. La verdad no la dicta un servidor: emerge de quién atestigua qué, ponderado por la política que negocie quien lee. ## Crates | crate | tipo | rol | | ----------------- | ---- | ------------------------------------------------------------ | | `agorapura-core` | lib | `Identity`/`Keypair` (ed25519), `Claim`, `Attestation` firmada y autoverificable | | `agorapura-graph` | lib | `TrustGraph` (atestaciones verificadas) + `Corroboration` + `TrustPolicy` negociada | ## Modelo ```text Keypair ──► Identity (kind: Person|Community|Alliance|Institution) │ Claim (subject · predicate = value) ──firmado──► Attestation │ │ └──────────► TrustGraph ◄──────────────┘ │ corroboration(claim) → Corroboration │ TrustPolicy.accepts() → sí / no ``` - **Fractal**: persona, comunidad, alianza e institución comparten estructura idéntica. Que una institución atestigüe sobre una persona o una alianza sobre una comunidad es la misma operación. - **Autoverificable**: una `Attestation` lleva la clave pública del atestador y su firma — cualquiera la valida sin consultar a nadie. - **Sin veredicto central**: el grafo devuelve evidencia cruda (`Corroboration`); la validez la decide una `TrustPolicy` *negociada*. Dos consumidores con políticas distintas pueden discrepar legítimamente sobre la misma red. ## Dependencias - `core` ← `ed25519-dalek`, `blake3` (id = BLAKE3 de la clave pública). - `graph` ← `agorapura-core`. Ambos `#![forbid(unsafe_code)]`. - Cero red, cero estado global — tipos puros. El transporte y el descubrimiento (DHT, Cards) van en capas superiores. ## Determinismo `Keypair::from_seed` es determinista — tests y derivación jerárquica de claves dependen de ello. Una identidad real siembra desde un CSPRNG. ## Estado `core` + `graph` implementados y verdes (22 tests). **Pendiente**: integración con `CardKind` (variantes Person/Community/Alliance/ Institution en el protocolo) y descubrimiento federado vía DHT.