# 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"}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documents.geb.network/build/bitcoin-did/api/did-node-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
