Registry API
The IDProva registry is an HTTP server for storing and resolving Agent Identity Documents. Built with Axum and SQLite, it can be self-hosted or used as a managed service.
Base URL: https://registry.idprova.dev (managed) or your self-hosted instance.
Endpoints
Section titled “Endpoints”GET /health
Section titled “GET /health”Health check endpoint.
Response 200 OK:
{ "status": "healthy", "version": "0.1.0", "protocol": "idprova", "spec_version": "0.1-draft"}GET /v1/meta
Section titled “GET /v1/meta”Protocol metadata and supported algorithms.
Response 200 OK:
{ "protocol": "idprova", "version": "0.1-draft", "algorithms": { "signing": ["Ed25519"], "hashing": ["BLAKE3", "SHA-256"], "post_quantum": ["ML-DSA-65"] }, "did_method": "did:idprova"}PUT /v1/aid/:id
Section titled “PUT /v1/aid/:id”Register or update an Agent Identity Document.
Path parameters:
| Parameter | Description |
|---|---|
:id | The agent identifier portion of the DID (e.g., example.com:my-agent) |
Request body: AID Document as JSON (W3C DID Document format).
{ "id": "did:idprova:example.com:my-agent", "controller": "did:idprova:example.com:alice", "@context": ["https://www.w3.org/ns/did/v1", "https://idprova.dev/ns/v1"], "verificationMethod": [ { "id": "did:idprova:example.com:my-agent#key-ed25519-1", "type": "Ed25519VerificationKey2020", "controller": "did:idprova:example.com:my-agent", "publicKeyMultibase": "z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK" } ], "authentication": ["did:idprova:example.com:my-agent#key-ed25519-1"], "service": []}Response 201 Created: AID registered successfully.
Response 200 OK: AID updated successfully.
Response 400 Bad Request: Invalid AID document structure.
GET /v1/aid/:id
Section titled “GET /v1/aid/:id”Resolve an Agent Identity Document.
Path parameters:
| Parameter | Description |
|---|---|
:id | The agent identifier portion of the DID |
Response 200 OK: AID Document as JSON.
Response 404 Not Found:
{ "error": "not_found", "message": "AID not found: did:idprova:example.com:my-agent"}DELETE /v1/aid/:id
Section titled “DELETE /v1/aid/:id”Soft-delete (deactivate) an Agent Identity Document.
Path parameters:
| Parameter | Description |
|---|---|
:id | The agent identifier portion of the DID |
Response 200 OK: AID deactivated.
Response 404 Not Found: AID not found.
GET /v1/aid/:id/key
Section titled “GET /v1/aid/:id/key”Extract verification methods from an AID.
Path parameters:
| Parameter | Description |
|---|---|
:id | The agent identifier portion of the DID |
Response 200 OK:
{ "did": "did:idprova:example.com:my-agent", "verificationMethod": [ { "id": "did:idprova:example.com:my-agent#key-ed25519-1", "type": "Ed25519VerificationKey2020", "publicKeyMultibase": "z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK" } ]}Response 404 Not Found: AID not found.
Running the Registry
Section titled “Running the Registry”Docker
Section titled “Docker”docker run -d \ --name idprova-registry \ -p 3000:3000 \ -v idprova-data:/app/data \ techblaze/idprova:latestFrom Source
Section titled “From Source”git clone https://github.com/techblaze-au/idprova.gitcd idprovacargo run --release -p idprova-registryEnvironment Variables
Section titled “Environment Variables”| Variable | Default | Description |
|---|---|---|
IDPROVA_HOST | 0.0.0.0 | Listen address |
IDPROVA_PORT | 3000 | Listen port |
IDPROVA_DB_PATH | /app/data/registry.db | SQLite database path |
RUST_LOG | info | Log level (debug, info, warn, error) |
Health Check
Section titled “Health Check”curl http://localhost:3000/healthNext Steps
Section titled “Next Steps”- Running a Registry — Deployment guide with Docker and configuration
- AID Format & DID Method — DID Document specification
- CLI Commands — CLI commands for registry interaction