POST/did-registry/v3/jsonrpc
The JSON-RPC API provides methods assisting the construction of blockchain transactions and interaction with the ledger, i.e. write operation on ledger.
Request
Header Parameters
- Type: string
- Format: UUID V4
The header MUST be used ONLY for the EBSI conformance testing.
The header is used to log the activities. See Conformance testing header section in the documentation.
- application/json
Body
required
The body follows the JSON-RPC 2.0 specification.
It requires the following fields:
- jsonrpc: must be exactly "2.0"
- method: method to be invoked
- params: method parameters
- id: identifier established by the client
API Methods
insertHashAlgorithm
Call to build an unsigned transaction to insert a new hash algorithm. This method requires the "DIDR:insertHashAlgorithm" attribute in the TPR.
Parameters:
- from: Ethereum address of the signer
- outputLength: hash output length (in bits)
- ianaName: IANA name of the hash algorithm
- oid: object identifier (OID)
- status: status of the algorithm (1 = active, 2 = revoked)
- multihash: multihash name
updateHashAlgorithm
Call to build an unsigned transaction to update an existing hash algorithm. This method requires the "DIDR:updateHashAlgorithm" attribute in the TPR.
Parameters:
- from: Ethereum address of the signer
- hashAlgorithmId: ID of the hash algorithm to update
- outputLength: hash output length (in bits)
- ianaName: IANA name of the hash algorithm
- oid: object identifier (ODI)
- status: status of the algorithm (1 = active, 2 = revoked)
- multihash: multihash name
insertDidDocument
Call to build an unsigned transaction to insert a new DID document.
Parameters:
- from: Ethereum address of the signer
- identifier: DID identifier (hexadecimal)
- hashAlgorithmId: ID of the hash algorithm used to hash the DID document
- hashValue: hash of the canonicalized DID document
- didVersionInfo: stringified JSON DID document (hex-encoded)
- timestampData: data to be added to the timestamp (stringified JSON encoded in hexadecimal)
- didVersionMetadata: DID document metadata (stringified JSON encoded in hexadecimal)
updateDidDocument
Call to build an unsigned transaction to update an existing DID document.
Parameters:
- from: Ethereum address of the signer
- identifier: DID identifier (hexadecimal)
- hashAlgorithmId: ID of the hash algorithm used to hash the DID document
- hashValue: hash of the canonicalized DID document
- didVersionInfo: stringified JSON DID document (hex-encoded)
- timestampData: data to be added to the timestamp (stringified JSON encoded in hexadecimal)
- didVersionMetadata: DID document metadata (stringified JSON encoded in hexadecimal)
insertDidController
Call to build an unsigned transaction to insert a new DID Controller to an existing DID document.
Parameters:
- from: Ethereum address of the signer
- identifier: DID identifier (hexadecimal)
- newControllerId: Ethereum address of the new controller (hex-encoded)
- notBefore: timestamp before which the controller is not valid
- notAfter: timestamp after which the controller is not valid anymore
updateDidController
Call to build an unsigned transaction to update an existing DID Controller.
Parameters:
- from: Ethereum address of the signer
- identifier: DID identifier (hexadecimal)
- newControllerId: Ethereum address of the controller to be updated (hex-encoded)
- notBefore: timestamp before which the controller is not valid
- notAfter: timestamp after which the controller is not valid anymore
revokeDidController
Call to build an unsigned transaction to revoke an existing DID Controller.
Parameters:
- from: Ethereum address of the signer
- identifier: DID (hexadecimal)
- oldControllerId: Ethereum address of the controller to be revoked (hex-encoded)
appendDidDocumentVersionHash
Call to build an unsigned transaction to append a new type of hash for given DID Doc version.
Parameters:
- from: Ethereum address of the signer
- identifier: DID identifier (hexadecimal)
- hashAlgorithmId: The new hash algorithm id used to compute the new hashValue of an existing DID Doc version
- hashValue: new hash value of an existing DID Doc version
- didVersionInfo: DID document content (stringified JSON encoded in hexadecimal)
- timestampData (optional): additional timestamping data. If set, it should be serialized JSON-LD file. The data can be added only at the timestamp.
detachDidDocumentVersionHash
Call to build an unsigned transaction to detach an existing hash for a given DID Doc version.
Parameters:
- from: Ethereum address of the signer
- identifier: DID identifier (hexadecimal)
- hashAlgorithmId: The new hash algorithm id used to compute the new hashValue of an existing DID Doc version
- hashValue: new hash value of an existing DID Doc version
- didVersionInfo: DID document content (stringified JSON encoded in hexadecimal)
appendDidDocumentVersionMetadata
Call to build an unsigned transaction to append a new metadata for given DID Doc version.
Parameters:
- from: Ethereum address of the signer
- identifier: DID identifier (hexadecimal)
- didVersionInfo: DID document content (stringified JSON encoded in hexadecimal)
- didVersionMetadata: DID document Version Metadata content (stringified JSON encoded in hexadecimal)
detachDidDocumentVersionMetadata
Call to build an unsigned transaction to detaches an existing metadata for given DID Doc version.
Parameters:
- from: Ethereum address of the signer
- identifier: DID identifier (hexadecimal)
- didVersionInfo: DID document content (stringified JSON encoded in hexadecimal)
- didVersionMetadata: DID document Version Metadata content (stringified JSON encoded in hexadecimal)
sendSignedTransaction
Call to send a signed transaction to the blockchain.
Must be exactly "2.0"
Method that needs to be invoked
Array of parameters
Identifier established by the client
Responses
- 200
- 400
Response
- application/json
- Schema
- Example (from schema)
- Build unsigned blockchain transaction to register a DID
- Build tx
- Send a transaction
Schema
- MOD2
Must be exactly "2.0"
Same identifier established by the client in the call
result object
Result of the call
{
"jsonrpc": "string",
"id": 0,
"result": {}
}
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"from": "0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7",
"to": "0xFde86148db58f57787C06BeAf63a9c3f789357b3",
"data": "0x0000...",
"nonce": "0x00",
"chainId": "0x1b3b",
"gasLimit": "0x10000",
"gasPrice": "0x00",
"value": "0x00"
}
}
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"from": "0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7",
"to": "0xFde86148db58f57787C06BeAf63a9c3f789357b3",
"data": "0x0000...",
"nonce": "0x00",
"chainId": "0x1b3b",
"gasLimit": "0x10000",
"gasPrice": "0x00",
"value": "0x00"
}
}
{
"jsonrpc": "2.0",
"id": 1,
"result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}
Bad request
- application/problem+json
- Schema
- Example (from schema)
- Bad Request
Schema
Default value: about:blank
An absolute URI that identifies the problem type. When dereferenced, it SHOULD provide human-readable documentation for the problem type.
A short summary of the problem type.
Possible values: >= 400
and <= 600
The HTTP status code generated by the origin server for this occurrence of the problem.
A human readable explanation specific to this occurrence of the problem.
An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
{
"type": "about:blank",
"title": "Internal Server Error",
"status": 500,
"detail": "Connection timeout",
"instance": "string"
}
{
"title": "Bad request",
"status": 400,
"detail": "Bad request"
}