HTTP endpoints

Eight endpoints. Verification questions are answered off-chain and signed — no gas, nothing written. Only /v1/push sends a transaction.

GET/v1/health

Liveness. Useful for checking your key works.

curl https://<host>/v1/health \
  -H "Authorization: Bearer idc_live_…"

GET/v1/resolve/{did}

Resolve a DID document. The method in the DID picks the chain.

curl https://<host>/v1/resolve/did:ethr:0xEff9e35… \
  -H "Authorization: Bearer idc_live_…"

GET/v1/status/{credentialId}

Credential status by bare hash. Takes ?chain= since a hash names no chain.

curl "https://<host>/v1/status/0xabc…?chain=eid" \
  -H "Authorization: Bearer idc_live_…"

GET/v1/schema/{hash}

Credential schema. eIDChain returns a commitment only; Ethereum and Fabric return the full JSON.

curl "https://<host>/v1/schema/0xdef…?chain=ethr" \
  -H "Authorization: Bearer idc_live_…"

GET/v1/attestation/{did}/{credentialId}

Read back an attestation from the target chain’s own storage.

curl https://<host>/v1/attestation/did:eid:4pZ…/0xabc… \
  -H "Authorization: Bearer idc_live_…"

POST/v1/verify

The main path. Send a W3C Verifiable Presentation, get a signed attestation naming the subject.

curl -X POST https://<host>/v1/verify \
  -H "Authorization: Bearer idc_live_…" \
  -H "Content-Type: application/json" \
  -d @presentation.json

POST/v1/credential-status

W3C BitstringStatusList check. Chain-independent — works for any compliant issuer.

curl -X POST https://<host>/v1/credential-status \
  -H "Authorization: Bearer idc_live_…" \
  -H "Content-Type: application/json" \
  -d '{"credentialStatus":{…}}'

POST/v1/push

Write a signed attestation on-chain. Costs gas — see your plan.

curl -X POST https://<host>/v1/push \
  -H "Authorization: Bearer idc_live_…" \
  -H "Content-Type: application/json" \
  -d '{"target":"ethr","attestation":{…},"signature":"0x…"}'