What is a shyconfig?
Ashyconfig is a machine-readable JSON document that governs a shyware deployment. Every client module validates a shyconfig on initialization and uses it to derive:
- which contract version and flow types are active
- which identity provider and mode to use
- what signing backend and HSM configuration to expect
- what deployment posture (recoverable vs. coercion-resistant) applies
- what receipt storage and recovery policy is in effect
contract_version are governed by the same anonymous-layer authority model regardless of branding, hostname, or audience.
The canonical schema is at shyware/shyconfig.schema.json.
Required top-level fields
contract_version
required_flows are valid.
anon_layer.required_flows
Declares the SDK flow types this deployment activates. Full set by embodiment:
| Embodiment | Required flows |
|---|---|
shyvoting | poll_read, identity_bind, ballot_build, ballot_submit, receipt_verify |
shywire | wire_issue, wire_transfer, wire_redeem |
shycustody | policy_read, lot_record, silo_transfer, redemption_request, redemption_settlement, demurrage_apply |
shycontracts | contract_register, contract_activate, remittance_submit |
shyshares | organization_read, membership_snapshot_read, proposal_create, weighted_ballot_submit, tally_read, action_queue_read, action_dispatch |
Identity block
| Field | Values | Notes |
|---|---|---|
provider | didit | identus | wallet | none | Primary identity source |
mode | stable_person_id | wallet_commitment | manual_demo | Commitment derivation strategy |
byoid_policy | disallowed | allowed | required | Whether to accept caller-supplied identity inputs |
presentation_mode | proof_hash | credential_commitment | wallet_signature | How identity proof is presented to the runtime |
Signing block
backend | Use case |
|---|---|
aws_kms_x_azure_hsm | Production — cross-cloud FIPS 140-3 L3 signing |
aws_kms | Production — single-cloud KMS |
local_ed25519 | Development only |
none | Testing without signing |
Deployment block
default_posture: "coercion_resistant" activates write-only mode unconditionally — no receipt retained on device after submission. "recoverable" allows receipt retention when runtime signals indicate a safe environment, falling back to write-only when any enabled runtime fallback condition is met.
Receipts block
match_store | Notes |
|---|---|
cockroach_encrypted | Production — encrypted CockroachDB on Verne Global |
firestore_encrypted | Production — encrypted Firestore |
device_only | Receipt stored locally only; no rematch available |
none | Write-only — no receipt retained |
Embodiment-specific blocks
shyvoting — no additional required block
Voting uses the base required fields plus identity, signing, deployment, receipts.