{"version":"0.1.0","trustCore":{"productProfile":"verifiable-agent-authorization","safepayProfile":"application-profile (not core identity)","nativeDomain":true,"softAccessProfile":true,"humanApproval":true,"authorizationProof":true,"authorizationDecision":true,"authorizationAssurance":{"level":"LOCAL_CRYPTO_VERIFIED","note":"Ed25519 PEM AuthorizationProof — not production-gated","proofAlgorithm":"EdDSA"},"persistence":"memory+postgres(grant,approval,principal,subject,agent,evidence,nonce)","peersOptional":true,"note":"Overlap with payment peers allowed; Soft*/OnPay dependency is not required","profile":{"contract":"midgo.agent-capability-delegation","version":"1.0","verify":"POST /v1/integration-profiles/softaccess/v1/verify"},"endpoints":{"principals":"POST|GET /v1/principals","subjects":"POST|GET /v1/subjects","agentIdentities":"POST|GET|PATCH /v1/agent-identities","delegations":"POST|GET /v1/delegations","mandates":"POST|GET /v1/mandates · POST /v1/mandates/standing · POST /v1/mandates/:id/revoke","verifications":"POST|GET /v1/verifications","authorizationsVerify":"POST /v1/authorizations/verify","approvals":"POST /v1/approvals · POST /v1/approvals/:id/decide","authorizationProofVerify":"POST /v1/authorization-proofs/verify","evidenceBundles":"GET /v1/evidence-bundles/:id","evidence":"GET /v1/evidence/:id","pilotScorecard":"POST /v1/pilot/scorecard/run","pilotEvidencePack":"POST /v1/pilot/evidence-pack","certificationRun":"POST /v1/certification/run"},"standingMandate":true,"spendLimits":true,"merchantCategory":true,"delegationChain":true},"developerPlatform":{"cloudApi":true,"sdk":"@midgo/sdk","mcp":{"status":"catalog","note":"Tool catalog via GET /v1/developer/mcp-tools — stdio MCP wraps catalog","tools":"GET /v1/developer/mcp-tools"},"webhooks":{"outbound":true,"persistence":"memory+postgres","retries":3,"events":["mandate.issued","mandate.revoked","verification.completed","approval.requested","approval.decided"],"register":"POST /v1/developer/webhooks","signature":"X-Midgo-Signature sha256=HMAC(body, secret|MIDGO_WEBHOOK_SECRET)"},"apiKey":{"header":"x-api-key | Authorization: Bearer","env":"MIDGO_API_KEY","requiredWhenSet":true,"gatesNativeWrites":true},"openapi":"docs/openapi.yaml (agent-auth tag)"},"protocolInterop":{"ap2":{"enabled":true,"contract":"midgo.ap2-authorization","version":"1.0","endpoints":{"mandates":"POST /v1/integration-profiles/ap2/v1/mandates","authorize":"POST /v1/integration-profiles/ap2/v1/authorize"},"note":"AP2 wire → Midgo Mandate/Verify/Evidence — no payment execution"},"x402":{"enabled":true,"contract":"midgo.x402-authorization","version":"1.0","endpoints":{"mandates":"POST /v1/integration-profiles/x402/v1/mandates","authorize":"POST /v1/integration-profiles/x402/v1/authorize"},"note":"x402 Payment Required → Midgo Mandate/Verify/Evidence — no settle/capture"},"acp":{"enabled":true,"contract":"midgo.acp-authorization","version":"1.0","endpoints":{"mandates":"POST /v1/integration-profiles/acp/v1/mandates","authorize":"POST /v1/integration-profiles/acp/v1/authorize"},"note":"ACP order/checkout → Midgo Mandate/Verify/Evidence — no PG execution"},"openid4vp":true},"compliance":{"auditExport":"GET /v1/compliance/audit-export","dualControl":"Trust Registry change-requests (existing)","note":"Midgo audit SoT export — Soft* 없음 · WORM/KMS는 후속"},"enterprise":{"sso":{"status":"STUB","issuer":null,"endpoints":{"config":"GET /v1/enterprise/sso/config","login":"POST /v1/enterprise/sso/login"}},"scim":{"status":"MEMORY_PLUS_POSTGRES","persistence":"memory+postgres","endpoints":{"users":"GET|POST /v1/enterprise/scim/v2/Users","user":"GET|PATCH /v1/enterprise/scim/v2/Users/:id"},"note":"SCIM 2.0 directory — PG dual-write when DATABASE_URL set"},"kms":{"mode":"local","status":"LOCAL","endpoints":{"status":"GET /v1/enterprise/kms/status","sign":"POST /v1/enterprise/kms/sign"},"note":"Real HSM/KMS wiring is follow-up; local uses process keys"}},"privateClaims":{"privateClaims":true,"schema":"midgo.private-claim-proof.v1","pairwiseSubject":true,"persistence":"memory+postgres","jwksKeys":1,"jwksSource":"pem","consentV2Draft":true,"selectiveDisclosure":{"format":"MIDGO_SD_JWT_VC_V1","configured":true,"active":true,"rfc":"RFC 9901 inspired pilot","note":"Not a full SD-JWT VC library; Midgo pilot digest+reveal"},"bbsPilot":{"format":"MIDGO_BBS_STYLE_V1","configured":true,"active":true,"w3cBbs":false,"note":"Unlinkable presentation pilot — not W3C BBS+ cryptosuite"},"zkp":{"configured":true,"active":true,"status":"GROTH16_OR_PILOT","verifierId":"midgo-local-groth16+pilot","proofSystem":"GROTH16|PILOT_HMAC","externalVerifierUrlConfigured":false,"groth16":{"circuitId":"MIDGO_AGE_THRESHOLD_GROTH16_V1","artifactsPresent":true,"enabled":true,"status":"ACTIVE","proofSystem":"GROTH16","prove":"POST /v1/zkp/prove/age-threshold-groth16","note":"Local snarkjs Groth16 age-threshold — wallet-side witness"},"note":"Local Groth16 age-threshold + PILOT_HMAC predicates","circuits":[{"circuitId":"MIDGO_AGE_THRESHOLD_V1","status":"ACTIVE","proofSystem":"PILOT_HMAC"},{"circuitId":"MIDGO_AGE_THRESHOLD_GROTH16_V1","status":"ACTIVE","proofSystem":"GROTH16"},{"circuitId":"MIDGO_JURISDICTION_MEMBERSHIP_V1","status":"ACTIVE","proofSystem":"PILOT_HMAC"},{"circuitId":"MIDGO_CONSENT_SCOPE_V1","status":"ACTIVE","proofSystem":"PILOT_HMAC"},{"circuitId":"MIDGO_DELEGATION_LIMIT_V1","status":"ACTIVE","proofSystem":"PILOT_HMAC"}]},"endpoints":{"attest":"POST /v1/private-claims/attest","verify":"POST /v1/private-claims/verify","getProof":"GET /v1/private-claims/proofs/:proofId","status":"GET /v1/private-claims/proofs/:proofId/status","revoke":"POST /v1/private-claims/proofs/:proofId/revoke","pairwise":"POST /v1/private-claims/pairwise","jwks":"GET /.well-known/jwks.json","privacyCapabilities":"GET /v1/privacy/capabilities","consentV2Check":"POST /v1/consents/v2/check","sdIssue":"POST /v1/selective-disclosure/issue","sdPresent":"POST /v1/selective-disclosure/present","sdVerify":"POST /v1/selective-disclosure/verify","bbsIssue":"POST /v1/bbs-disclosure/issue","bbsPresent":"POST /v1/bbs-disclosure/present","bbsVerify":"POST /v1/bbs-disclosure/verify","zkpCircuits":"GET /v1/zkp/circuits","zkpVerify":"POST /v1/zkp/verify","zkpProveAge":"POST /v1/zkp/prove/age-threshold","zkpProveAgeGroth16":"POST /v1/zkp/prove/age-threshold-groth16","zkpProveConsent":"POST /v1/zkp/prove/consent-scope","zkpProveDelegation":"POST /v1/zkp/prove/delegation-limit","zkpProveJurisdiction":"POST /v1/zkp/prove/jurisdiction"}},"safepay":{"agentSafepayMvp":true,"standingMandate":true,"spendLimits":true,"softPayExecution":false,"endpoints":{"authorizeAndPrepare":"POST /v1/safepay/authorize-and-prepare","complete":"POST /v1/safepay/complete"},"note":"Authorization + paper prepare/receipt refs — SoftPay/OnPay own capture"},"capabilities":{"vpAdapter":"opendid-sdk","wallet":{"mode":"opendid-sdk","byo":false,"verifyUrl":null,"failClosed":false},"consentSigner":"Ed25519","credentialStatus":"mock","credentialStatusInfo":{"adapter":"mock","supports":["mock","http","crl","ocsp","statuslist2021"],"failClosed":false,"listConfigured":false,"formatNote":"mock","ocspDer":false,"statusList2021Active":false},"consent":{"mode":"ed25519","algorithm":"Ed25519","pemKeysPresent":true,"ephemeralAllowed":false,"hsmStub":false},"paymentAdapter":"PG_SANDBOX","pg":{"mode":"sandbox","byoHttp":false,"rails":["portone","toss","http/:rail"]},"trustRegistry":"postgres+memory","auditLogs":"append-only","standards":["OpenID4VP","W3C-VC-DID","OpenDID-TrustRegistry","PortOne","TossPayments","BYO-Wallet-HTTP","BYO-PG-HTTP"],"peers":{"softPay":"identity/mandate + consent-pointers","softPg":"delegation-bundles midgo_bundle_ref","softAgent":"permissions/check + consents/verify","nexport":"wallet residual · SoftPay WalletPort","aegis":"evidence export read-only"},"pgLive":false,"privacy":{"booleanClaims":{"configured":true,"active":true,"assurance":"SIGNED_OR_UPSTREAM_ATTESTED_OR_MOCK_PILOT"},"selectiveDisclosure":{"format":"MIDGO_SD_JWT_VC_V1","configured":true,"active":true,"rfc":"RFC 9901 inspired pilot"},"bbsPilot":{"format":"MIDGO_BBS_STYLE_V1","configured":true,"active":true,"w3cBbs":false,"note":"Unlinkable presentation pilot — not W3C BBS+"},"zkp":{"configured":true,"active":true,"status":"PILOT","verifierId":"midgo-predicate-pilot-v1","proofSystem":"PILOT_HMAC","note":"Predicate pilot (commitment+sig) — not Groth16","circuitsRegistered":["MIDGO_AGE_THRESHOLD_V1","MIDGO_JURISDICTION_MEMBERSHIP_V1","MIDGO_CONSENT_SCOPE_V1","MIDGO_DELEGATION_LIMIT_V1"],"circuitsActive":["MIDGO_AGE_THRESHOLD_V1","MIDGO_JURISDICTION_MEMBERSHIP_V1","MIDGO_CONSENT_SCOPE_V1","MIDGO_DELEGATION_LIMIT_V1"]},"mockVpAllowed":true,"localStructuralFallbackForbidden":false,"presentationSessionPersistence":true}},"softAgentGates":{"permissionsCheck":"POST /v1/permissions/check","consentsVerify":"POST /v1/consents/verify","note":"SoftAgent MidgoIdentityGateway http mode; paper-safe allow when MIDGO_GATE_STRICT!=1","gateStrict":false,"tap":{"mode":"mock","liveKeys":false,"httpPath":"/v1/consents/verify"},"consentPointers":{"plane":"midgo-consent-pointer-memory","durable":false,"liveKeys":false,"softAgentPsp":false,"note":"in-memory stub · live consent DB / TAP verify = Human"}},"softPay":{"verifyMandate":"POST /v1/identity/verify-mandate","registerMandate":"POST /v1/identity/mandates","mandates":{"plane":"midgo-mandate-paper","engine":"MIDGO_PAPER","durable":false,"liveKeys":false,"softPayHttpPath":"/v1/identity/verify-mandate","note":"paper mandate store · SoftPay IdentityPort shim · live = Human"},"consentPointer":"POST /v1/consent-pointers","delegationBundles":"POST /v1/delegation-bundles"},"identity":{"subjectSession":"POST /v1/auth/session","didChallenge":"POST /v1/auth/challenge","didSession":"POST /v1/auth/session/did","oidcBind":"POST /v1/auth/oidc/bind","oidcExchange":"POST /v1/auth/oidc/exchange","oidcRevoke":"POST /v1/auth/oidc/bindings/:id/revoke","mandateRevoke":"POST /v1/identity/mandates/:id/revoke","softClientApiKey":false,"otel":false,"objectStorage":{"mode":"memory","live":false,"note":"in-memory object store · S3 live = Human / OBJECT_STORAGE_MODE=s3"},"identityStrict":false,"subjectSessionEnforce":false,"paperDidAuth":true,"oidcLive":false,"oidcRequireToken":false},"opendid":{"openId4Vp":true,"trustRegistry":true,"walletSdk":false,"zkRevealModes":["BOOLEAN_ONLY"],"privacy":{"booleanClaims":{"configured":true,"active":true,"assurance":"SIGNED_OR_UPSTREAM_ATTESTED_OR_MOCK_PILOT"},"selectiveDisclosure":{"format":"MIDGO_SD_JWT_VC_V1","configured":true,"active":true,"rfc":"RFC 9901 inspired pilot"},"bbsPilot":{"format":"MIDGO_BBS_STYLE_V1","configured":true,"active":true,"w3cBbs":false,"note":"Unlinkable presentation pilot — not W3C BBS+"},"zkp":{"configured":true,"active":true,"status":"PILOT","verifierId":"midgo-predicate-pilot-v1","proofSystem":"PILOT_HMAC","note":"Predicate pilot (commitment+sig) — not Groth16","circuitsRegistered":["MIDGO_AGE_THRESHOLD_V1","MIDGO_JURISDICTION_MEMBERSHIP_V1","MIDGO_CONSENT_SCOPE_V1","MIDGO_DELEGATION_LIMIT_V1"],"circuitsActive":["MIDGO_AGE_THRESHOLD_V1","MIDGO_JURISDICTION_MEMBERSHIP_V1","MIDGO_CONSENT_SCOPE_V1","MIDGO_DELEGATION_LIMIT_V1"]},"mockVpAllowed":true,"localStructuralFallbackForbidden":false,"presentationSessionPersistence":true},"verifiableIntent":true,"verifiableConsent":true,"credentialStatus":"mock","credentialStatusDetail":{"adapter":"mock","supports":["mock","http","crl","ocsp","statuslist2021"],"failClosed":false,"listConfigured":false,"formatNote":"mock","ocspDer":false,"statusList2021Active":false},"consentDetail":{"mode":"ed25519","algorithm":"Ed25519","pemKeysPresent":true,"ephemeralAllowed":false,"hsmStub":false}},"payments":{"adapter":"PG_SANDBOX","portone":false,"toss":false},"industryReadiness":{"productionDb":true,"adminApi":true,"subjectSession":true,"auditAppendOnly":true,"softInterop":true,"trustDualControl":false,"identityProof":{"didChallenge":true,"oidcJwks":false,"sessionEnforce":false,"identityStrict":false,"consentPem":true,"statusList2021":false,"ocspDer":false},"doc":"https://github.com/minikwave/midgo/blob/main/docs/INDUSTRY-READINESS.md","status":"https://github.com/minikwave/midgo/blob/main/docs/STATUS.md"}}