Docs · v0.1

Read the protocol.
Ship in 60 seconds.

Three calls to issue, resolve, and verify. Everything else is sugar.

Quickstart

quickstart.shcopy
# 1. Issue a QGUID
curl -X POST https://api.qguid.xyz/v1/issue \
  -H "Authorization: Bearer $QGUID_KEY" \
  -d '{ "name": "orca", "alg": "ML-DSA-65" }'

# 2. Resolve it
curl https://api.qguid.xyz/v1/resolve/orca.qguid.eth

# 3. Verify a signature
curl -X POST https://api.qguid.xyz/v1/verify \
  -d '{ "name": "orca.qguid.eth", "msg": "...", "sig": "0x..." }'

Reference

  • Protocol

    QGUID structure, entropy attestation, signature scheme. Read the v0.1 spec.

    Open →
  • REST API

    Issue, resolve, transfer, revoke. JSON over HTTPS. OpenAPI 3.1 schema published.

    Open →
  • SDKs

    TypeScript, Python, Go, Rust. Idiomatic clients with built-in retry and PQC verification.

    Open →
  • Resolver

    ENS-compatible CCIP-Read gateway. Returns A2A endpoints, DIDs, PQC public keys.

    Open →
  • Webhooks

    Issuance, transfer, expiry, key-rotation events. HMAC-signed payloads.

    Open →
  • DID method

    did:qguid:* spec, registered with W3C DID registry. Resolver returns full DID document.

    Open →

REST endpoints

The whole API.

  • POST/v1/issueIssue a new QGUID under qguid.eth
  • GET/v1/resolve/:namePublic resolution — no auth required
  • POST/v1/verifyVerify a Dilithium-3 signature against a name
  • POST/v1/transferTransfer ownership to a new wallet
  • POST/v1/revokeRevoke and burn a QGUID
  • POST/v1/rotateRotate signing key without changing the name

Status

All systems nominal.

  • API · api.qguid.xyz118 ms p50
  • Resolver · resolver.qguid.eth42 ms p50
  • QRNG feed · ANU + IDQnominal
  • Issuance settlement · Base L21.4 s avg
  • Webhooks delivery99.98% / 30d

Last check: continuous · 30 d uptime: 99.992%