> For the complete documentation index, see [llms.txt](https://documents.geb.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documents.geb.network/build/bitcoin-did/api/did-node-api.md).

# DID Node API

## Health Check

> Health check endpoint

```json
{"openapi":"3.1.0","info":{"title":"DID Node API","version":"1.0.0"},"paths":{"/health":{"get":{"summary":"Health Check","description":"Health check endpoint","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}}}
```

## Api Resolve

> Resolve DID document

```json
{"openapi":"3.1.0","info":{"title":"DID Node API","version":"1.0.0"},"paths":{"/did/resolve":{"get":{"summary":"Api Resolve","description":"Resolve DID document","operationId":"api_resolve_did_resolve_get","parameters":[{"name":"did","in":"query","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## Api List Dids

> List DIDs with optional filtering by controller or public\_key\_multibase, and pagination

```json
{"openapi":"3.1.0","info":{"title":"DID Node API","version":"1.0.0"},"paths":{"/did/list":{"get":{"summary":"Api List Dids","description":"List DIDs with optional filtering by controller or public_key_multibase, and pagination","operationId":"api_list_dids_did_list_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"controller","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Controller"}},{"name":"public_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Key"}},{"name":"key_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## Did History

> Get the complete history of DID operations

```json
{"openapi":"3.1.0","info":{"title":"DID Node API","version":"1.0.0"},"paths":{"/did/history":{"get":{"summary":"Did History","description":"Get the complete history of DID operations","operationId":"did_history_did_history_get","parameters":[{"name":"did","in":"query","required":true,"schema":{"type":"string","title":"Did"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## Did At Height

> Get DID document state at specific block height

```json
{"openapi":"3.1.0","info":{"title":"DID Node API","version":"1.0.0"},"paths":{"/did/at_height":{"get":{"summary":"Did At Height","description":"Get DID document state at specific block height","operationId":"did_at_height_did_at_height_get","parameters":[{"name":"did","in":"query","required":true,"schema":{"type":"string","title":"Did"}},{"name":"height","in":"query","required":true,"schema":{"type":"integer","minimum":0,"title":"Height"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## Api Create

> Create a new DID and return PSBT

```json
{"openapi":"3.1.0","info":{"title":"DID Node API","version":"1.0.0"},"paths":{"/did/create":{"post":{"summary":"Api Create","description":"Create a new DID and return PSBT","operationId":"api_create_did_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DIDCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"DIDCreateRequest":{"properties":{"spend_addr":{"type":"string","title":"Spend Addr"},"verification_capabilities":{"type":"integer","title":"Verification Capabilities"},"control_address":{"type":"string","title":"Control Address"},"subject_public_key":{"type":"string","title":"Subject Public Key"},"key_type":{"type":"string","title":"Key Type"}},"type":"object","required":["spend_addr","verification_capabilities","control_address","subject_public_key","key_type"],"title":"DIDCreateRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## Api Update

> Update DID and return PSBTs

```json
{"openapi":"3.1.0","info":{"title":"DID Node API","version":"1.0.0"},"paths":{"/did/update":{"post":{"summary":"Api Update","description":"Update DID and return PSBTs","operationId":"api_update_did_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DIDUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"DIDUpdateRequest":{"properties":{"original_utxo":{"additionalProperties":true,"type":"object","title":"Original Utxo"},"spend_addr":{"type":"string","title":"Spend Addr"},"vm_updates":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Vm Updates"},"control_address":{"type":"string","title":"Control Address"}},"type":"object","required":["original_utxo","spend_addr","vm_updates","control_address"],"title":"DIDUpdateRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## Api Deactivate

> Deactivate DID and return PSBT

```json
{"openapi":"3.1.0","info":{"title":"DID Node API","version":"1.0.0"},"paths":{"/did/deactivate":{"post":{"summary":"Api Deactivate","description":"Deactivate DID and return PSBT","operationId":"api_deactivate_did_deactivate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DIDDeactivateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"DIDDeactivateRequest":{"properties":{"original_utxo":{"additionalProperties":true,"type":"object","title":"Original Utxo"},"spend_addr":{"type":"string","title":"Spend Addr"}},"type":"object","required":["original_utxo","spend_addr"],"title":"DIDDeactivateRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## Batch Get Dids

> Batch query DID documents by DID list (limit: max 100)

```json
{"openapi":"3.1.0","info":{"title":"DID Node API","version":"1.0.0"},"paths":{"/did/batch_get":{"post":{"summary":"Batch Get Dids","description":"Batch query DID documents by DID list (limit: max 100)","operationId":"batch_get_dids_did_batch_get_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DIDBatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"DIDBatchRequest":{"properties":{"dids":{"items":{"type":"string"},"type":"array","title":"Dids"}},"type":"object","required":["dids"],"title":"DIDBatchRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## Did Verify

> Verify DID signature

```json
{"openapi":"3.1.0","info":{"title":"DID Node API","version":"1.0.0"},"paths":{"/did/verify":{"post":{"summary":"Did Verify","description":"Verify DID signature","operationId":"did_verify_did_verify_post","parameters":[{"name":"did","in":"query","required":true,"schema":{"type":"string","title":"Did"}},{"name":"signature","in":"query","required":true,"schema":{"type":"string","title":"Signature"}},{"name":"data","in":"query","required":true,"schema":{"type":"string","title":"Data"}},{"name":"sign_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Signature type: standard, unisat, bitcoin_message","default":"standard","title":"Sign Type"},"description":"Signature type: standard, unisat, bitcoin_message"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```
