Skip to content

Trust Badges ​

The Sovereign Bazaar uses schema-backed trust badges. A package may only claim a badge if the registry entry includes a matching evidence object under trust.

Registry Policy ​

The canonical policy lives in (spec-targeted layout — the registry/ tree is not yet checked in; see SPEC-187 for the implemented validation surface):

text
forge/nexus-forge/registry/packages.json
forge/nexus-forge/registry/trust-badges.schema.json

The registry policy defines:

  • Allowed badge identifiers
  • Human-readable labels and descriptions
  • Required evidence keys for each badge
  • Publisher identity mode: did-vc or explicit self-published
  • Package-level validation rules

Badge Truth Table ​

BadgeClaimRequired evidenceProof artifactValidation commandDisplay status
signedArtifact origin and digest are bound to a signer key.signer, key_id, signature, artifact_digest, attested_atDetached signature plus artifact digest.nexus bazaar validate && nexus verify <artifact>seed-attested
reproducibleIndependent rebuilds converge on the same Variant-CID.artifact_digest, recipe_digest, rebuild_count, builders, attested_atRecipe digest, rebuild transcript, builder identities, and artifact digest.nexus bazaar verify-cidsseed-attested
auditedA named audit reviewed the declared source and manifest scope.auditor, report, scope, completed_atAudit report reference and declared scope.nexus bazaar validateseed-attested
no-heapThe declared runtime scope does not allocate from the heap.analysis_tool, report, scope, attested_atStatic allocation analysis report.nexus bazaar validateseed-attested
no-networkThe declared runtime scope cannot initiate network access.policy, scope, attested_atPledge, capability, or syscall policy reference.nexus bazaar validateseed-attested
air-gap-readyThe package can be verified and installed without network access.offline_bundle, dependency_closure, attested_atOffline bundle manifest and dependency closure.nexus bazaar validateseed-attested

The same fields are machine-readable in trust_badges.badges. nexus bazaar validate rejects a badge definition that omits its claim, proof artifact, validation command, or display status.

Publisher Identity ​

Every package must declare a publisher object. The publisher identity is either DID/VC-backed or explicitly marked self-published.

The seed registry uses self-published publisher identity for its development attestations. That is intentionally weaker than DID/VC verification, but it is honest and machine-checkable.

Initial DID/VC acceptance is restricted to three lanes: Libertaria SKH (did:skh:*), Libertaria DID/VC (did:nexus:* plus Nexus VC profiles), and Mosaic IOP DID from /home/markus/zWork/_Dlabs/mosaic-trust-network/iop-rs, iop-ts, and iop-dart. Generic DID methods are not initial Bazaar/Forge trust inputs.

Validation ​

Run the local registry validator:

bash
nexus bazaar validate

The validator checks that every claimed badge has evidence and that badge evidence contains the keys required by the registry policy. For signed and reproducible, the evidence artifact digest must match the package variant_cid. It also rejects packages that lack publisher identity metadata.

Verification Boundary ​

Registry validation proves the catalog metadata is internally consistent. It does not replace artifact verification. Consumers should still run:

bash
nexus verify <artifact>

or use the underlying nip verify flow during package installation.