VDR Tools CLI with cheqd (deprecated)
Use VDR Tools CLI to get started with cheqd's identity functionality.
This page describes how identity-domain transactions can be integrated in 3rd party applications such as Evernym VDR Tools.
Note: This cheqd SDK integration has now been deprecated and is no longer actively maintained.
Base write flow
Build a request Example:
build_create_did_request(id, verkey, alias)Sign the request using DID key Example:
indy_crypto_sign(did, verkey)Build a transaction with the request from previous step Example:
build_tx(pool_alias, pub_key, builded_request, account_number, account_sequence, max_gas, max_coin_amount, denom, timeout_height, memo)Sign the transaction Example:
cheqd_keys_sign(wallet_handle, key_alias, tx).Broadcast a signed transaction Example:
broadcast_tx_commit(pool_alias, signed).
Response format
Response {
check_tx: TxResult {
code: 0,
data: None,
log: "",
info: "",
gas_wanted: 0,
gas_used: 0,
events: [
],
codespace: ""
},
deliver_tx: TxResult {
code: 0,
data: Some(Data([...])),
log: "[{\"events\":[{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"send\"},{\"key\":\"sender\",\"value\":\"cheqd1fknpjldck6n3v2wu86arpz8xjnfc60f99ylcjd\"},{\"key\":\"module\",\"value\":\"bank\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"cheqds1pvnjjy3vz0ga6hexv32gdxydzxth7f86mekcpg\"},{\"key\":\"sender\",\"value\":\"cheqd1fknpjldck6n3v2wu86arpz8xjnfc60f99ylcjd\"},{\"key\":\"amount\",\"value\":\"1000ncheq\"}]}]}]",
info: "",
gas_wanted: 0,
gas_used: 0,
events: [...],
codespace: ""
},
hash: "1B3B00849B4D50E8FCCF50193E35FD6CA5FD4686ED6AD8F847AC8C5E466CFD3E",
height: 353
}hash: Transaction hashheight: Ledger height
DID transactions
Create DID
Command
build_create_did_request(id, verkey, alias)
Request format
CreateDidRequest
{
"data": {
"id": "GEzcdDLhCpGCYRHW82kjHd",
"verkey": "~HmUWn928bnFT6Ephf65YXv",
"alias": "DID for Alice"
},
"owner": "GEzcdDLhCpGCYRHW82kjHd",
"signature": "49W5WP5jr7x1fZhtpAhHFbuUDqUYZ3AKht88gUjrz8TEJZr5MZUPjskpfBFdboLPZXKjbGjutoVascfKiMD5W7Ba",
"metadata": {}
}id(base58-encoded string): Target DID as base58-encoded string for 16 or 32 byte DID valueverkey(base58-encoded string, possibly starting with ""; optional): Target verification key. It can start with "", which means that it is an abbreviatedverkeyand should be 16 bytes long when decoded. Otherwise, it's a fullverkeywhich should be 32 bytes long when decoded.alias(string; optional)
Response format
CreateDidResponse {
"key": "did:GEzcdDLhCpGCYRHW82kjHd"
}key(string): A unique key is used to store this DID in a state
Response validation
CreateDidRequestmust be signed by the DID fromidfield. It means that this DID must be an owner of this DID transaction.
Update DID
Command
build_update_did_request(id, verkey, alias)
Request format
UpdateDidRequest
{
"data": {
"id": "GEzcdDLhCpGCYRHW82kjHd",
"verkey": "~HmUWn928bnFT6Ephf65YXv",
"alias": "DID for Alice"
},
"owner": "GEzcdDLhCpGCYRHW82kjHd",
"signature": "49W5WP5jr7x1fZhtpAhHFbuUDqUYZ3AKht88gUjrz8TEJZr5MZUPjskpfBFdboLPZXKjbGjutoVascfKiMD5W7Ba",
"metadata": {}
}id(base58-encoded string): Target DID as base58-encoded string for 16 or 32 byte DID value.verkey(base58-encoded string, possibly starting with ""; optional): Target verification key. It can start with "", which means that it is an abbreviatedverkeyand should be 16 bytes long when decoded. Otherwise, it's a fullverkeywhich should be 32 bytes long when decoded.alias(string; optional).
Response format
UpdateDidResponse {
"key": "did:GEzcdDLhCpGCYRHW82kjHd"
}key(string): A unique key is used to store this DID in a state
Response validation
A transaction with
idfromUpdateDidRequestmust already be in a ledger created byCreateDidRequestUpdateDidRequestmust be signed by the DID fromidfield. It means that this DID must be an owner of this DID transaction.
Get DID
Command
build_query_get_did(id)
id(base58-encoded string): Target DID as base58-encoded string for 16 or 32 byte DID value.
Request format
Request
{
"path": "/store/cheqd/key",
"data": <bytes>,
"height": 642,
"prove": true
}path: Path for RPC endpoint for cheqd pooldata: Query with an entity key from a state. Stringdid:<id>encoded to bytesheight: Ledger height (size).Nonefor auto calculationprove: Boolean value.Truefor getting state proof in a pool response
Response format
QueryGetDidResponse{
"did": {
"id": "GEzcdDLhCpGCYRHW82kjHd",
"verkey": "~HmUWn928bnFT6Ephf65YXv",
"alias": "DID for Alice"
},
}Last updated
Was this helpful?