{"service":"doi-oracle","description":"Depth-of-Identity Oracle. Priced Schnorr-signed thermodynamic-weight score for any Nostr pubkey. The signature is the product. Aligned with powforge.dev/whitepaper §4.","whitepaper":"https://powforge.dev/whitepaper/","whitepaper_url":"https://powforge.dev/whitepaper","version":1,"package_version":"1.0.0","score_version":"v0.5.1","kind":30382,"dimensions":["social","access","vouch","economic"],"signed_by":"b4b12dfbc3dfdfa803bb72e344e761dc78db4ec2058c8db3f1c3ac63f9e42b44","note":"spatial dimension retired in v0.7.0; opt-in via ?includeSpatial=1 returns a deprecated block. See research/spatial-dim-protocol-apr21.md.","endpoints":[{"path":"/oracle/doi-score","method":"POST","scope":"identity-score:lookup","price_sats":2,"request":{"npub":"npub1... (NIP-19 bech32)","pubkey":"64-hex Nostr pubkey (either field accepted)"},"response":{"pubkey":"echoed","depth":"per-dimension scores (access, economic, social, vouch). Pass ?includeSpatial=1 for a deprecated spatial block.","composite":"integer total weight","rank":"bucket: unknown, emerging, active, established, trusted","signed_by":"hex pubkey of the oracle","signed_at":"unix seconds","valid_until":"unix seconds, cache expiry","signature":"128-char hex schnorr signature over canonical JSON"},"auth":"L402 (RFC 7235 + Lightning)","alias_of":"/l402/identity-score"},{"path":"/oracle/doi-score/:pubkey","method":"GET","scope":"identity-score:lookup","price_sats":1,"note":"Cheaper if score was computed in the last 3600s. Falls back to the same 1-sat tier otherwise (best-effort).","auth":"L402 (RFC 7235 + Lightning)","alias_of":"/l402/identity-score/:pubkey"},{"path":"/oracle/depth/:pubkey","method":"GET","scope":"identity-score:lookup","price_sats":1,"description":"Discoverability alias. Byte-identical response to /oracle/doi-score/:pubkey. Accepts npub or 64-hex.","auth":"L402 (RFC 7235 + Lightning)","alias_of":"/l402/identity-score/:pubkey"},{"path":"/v1/oracle/score/:pubkey","method":"GET","scope":"identity-score:lookup","price_sats":1,"description":"Versioned alias. Same response as /oracle/doi-score/:pubkey. Intended for callers that want a stable v1 URL contract.","auth":"L402 (RFC 7235 + Lightning)","alias_of":"/l402/identity-score/:pubkey"}],"free_endpoints":[{"path":"/oracle/freshness","method":"GET, POST","description":"Verify a signed score's schnorr signature AND its freshness window against a caller-supplied current bitcoin chaintip height. The score envelope advertises its own freshness_blocks TTL inside the signed payload, so a verifier can detect stale scores even when the signature still verifies.","auth":"none"},{"path":"/oracle/witness/verify","method":"GET, POST","description":"Verify a signed witness envelope (softwar primitive #2). Recomputes the schnorr signature and reports blocks_since_witness against the caller-supplied or oracle-fetched current chaintip. Public, unauthenticated — verification of public signed material should never require payment.","auth":"none"}],"witness_endpoints":[{"path":"/oracle/witness","method":"POST","scope":"oracle-witness:sign","price_sats":1,"request":{"hash":"64-hex sha256 of caller content","note":"optional, ≤200 chars"},"response":{"hash":"echoed","note":"echoed when supplied","witness_kind":"powforge-witness-v0.1","witnessed_at":"unix seconds","signed_by":"oracle pubkey hex","bitcoin_tip":"{height, hash} — chaintip witness at sign time","signature":"128-char hex schnorr over canonical JSON (covers hash + note + bitcoin_tip + witnessed_at + witness_kind + signed_by)"},"auth":"L402 (RFC 7235 + Lightning)","alias_of":"/l402/witness"}],"cache_ttl_seconds":3600,"freshness_blocks_default":6,"default_relays":["wss://relay.damus.io","wss://nos.lol","wss://relay.primal.net","wss://relay.nostr.band","wss://nostr.wine"],"contact":"zeke@zap.fubz.dev","roadmap":{"ships_today":["access","economic","social","vouch","npub bech32 input"],"in_progress_v0_6":["per-dim samples+oldest","diversity_bonus","0-100 normalization"],"planned":["temporal (OTS kind:1040)","vouch→social wire merge"],"plan_doc":"research/doi-oracle-endpoint-unification-plan-apr19.md"}}