Client
CLI
A user can query and interact with the data module using the CLI.
Query
The query commands allow users to query data state.
For examples on how to query state using CLI, see the data module Query commands documentation.
Transactions
The tx commands allow users to interact with the data module.
For examples on how to submit transactions using CLI, see the data module Transaction commands documentation.
gRPC
A user can query the data module using gRPC endpoints.
AnchorByIRI
The AnchorByIRI endpoint allows users to query a data anchor by the IRI of the data.
regen.data.v2.Query/AnchorByIRI
Example:
grpcurl -plaintext \
-d '{"iri":"regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf"}' \
localhost:9090 \
regen.data.v2.Query/AnchorByIRI
Example Output:
{
"anchor": {
"contentHash": {
"graph": {
"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=",
"digestAlgorithm": "DIGEST_ALGORITHM_BLAKE2B_256",
"canonicalizationAlgorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015",
"markleTree": "GRAPH_MERKLE_TREE_NONE_UNSPECIFIED"
}
},
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf",
"timestamp": "2022-01-01T00:00:00.000000000Z"
}
}
AnchorByHash
The AnchorByHash endpoint allows users to query a data anchor by the ContentHash of the data
regen.data.v2.Query/AnchorByHash
Example:
grpcurl -plaintext \
-d '{"contentHash": {
"graph": {
"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=",
"digestAlgorithm": "DIGEST_ALGORITHM_BLAKE2B_256",
"canonicalizationAlgorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015"
}
}
}' \
localhost:9090 \
regen.data.v2.Query/AnchorByHash
Example Output:
{
"anchor": {
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf",
"contentHash": {
"graph": {
"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=",
"digestAlgorithm": "DIGEST_ALGORITHM_BLAKE2B_256",
"canonicalizationAlgorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015"
}
},
"timestamp": "2022-07-06T11:54:58.464341467Z"
}
}
AttestationsByAttestor
The AttestationsByAttestor endpoint allows users to query data attestations by an attestor.
regen.data.v2.Query/AttestationsByAttestor
Example:
grpcurl -plaintext \
-d '{"attestor": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5"}' \
localhost:9090 \
regen.data.v2.Query/AttestationsByAttestor
Example Output:
{
"attestations": [
{
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf",
"attestor": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5",
"timestamp": "2022-07-07T05:44:06.119352311Z"
}
]
}
AttestationsByIRI
The AttestationsByIRI endpoint allows users to query data attestations by an iri.
regen.data.v2.Query/AttestationsByIRI
Example:
grpcurl -plaintext \
-d '{"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf"}' \
localhost:9090 \
regen.data.v2.Query/AttestationsByIRI
Example Output:
{
"attestations": [
{
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf",
"attestor": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5",
"timestamp": "2022-07-07T05:44:06.119352311Z"
}
]
}
AttestationsByHash
The AttestationsByHash endpoint allows users to query by the ContentHash of the data.
regen.data.v2.Query/AttestationsByHash
Example:
grpcurl -plaintext \
-d '{
"content_hash": {
"graph": {
"canonicalization_algorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015",
"digest_algorithm": "DIGEST_ALGORITHM_BLAKE2B_256",
"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY="
}
}
}' \
localhost:9090 \
regen.data.v2.Query/AttestationsByHash
Example Output:
{
"attestations": [
{
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf",
"attestor": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5",
"timestamp": "2022-07-07T05:44:06.119352311Z"
}
]
}
Resolver
The Resolver allows users to query resolver by its unique identifier.
regen.data.v2.Query/Resolver
Example:
grpcurl -plaintext \
-d '{"id":1}' \
localhost:9090 \
regen.data.v2.Query/Resolver
Example Output:
{
"resolver": {
"id": "1",
"url": "http://foo.bar",
"manager": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5"
}
}
ResolversByIRI
The ResolversByIRI allows users to query resolvers with registered data by the IRI of the data.
regen.data.v2.Query/ResolversByIRI
Example:
grpcurl -plaintext \
-d '{"iri":"regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf"}' \
localhost:9090 \
regen.data.v2.Query/ResolversByIRI
Example Output:
{
"resolvers": [
{
"id": "1",
"url": "http://foo.bar",
"manager": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5"
}
]
}
ResolversByHash
The ResolversByHash allows users to query resolvers with registered data by the ContentHash of the data.
regen.data.v2.Query/ResolversByHash
Example:
grpcurl -plaintext \
-d '{
"content_hash":{
"graph":{
"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=",
"digest_algorithm": "DIGEST_ALGORITHM_BLAKE2B_256",
"canonicalization_algorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015"
}
}
}' \
localhost:9090 \
regen.data.v2.Query/ResolversByHash
Example Output:
{
"resolvers": [
{
"id": "1",
"url": "http://foo.bar",
"manager": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5"
}
]
}
ResolversByURL
The ResolversByURL allows users to query resolvers by URL.
regen.data.v2.Query/ResolversByURL
Example:
grpcurl -plaintext \
-d '{"url":"http://foo.bar"}' \
localhost:9090 \
regen.data.v2.Query/ResolversByURL
Example Output:
{
"resolvers": [
{
"id": "1",
"url": "http://foo.bar",
"manager": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5"
}
]
}
ConvertIRIToHash
The ConvertIRIToHash allows users to convert IRI to a ContentHash.
regen.data.v2.Query/ConvertIRIToHash
Example:
grpcurl -plaintext \
-d '{"iri":"regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf"}' \
localhost:9090 \
regen.data.v2.Query/ConvertIRIToHash
Example Output:
{
"contentHash": {
"graph": {
"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=",
"digestAlgorithm": "DIGEST_ALGORITHM_BLAKE2B_256",
"canonicalizationAlgorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015"
}
}
}
ConvertHashToIRI
The ConvertHashToIRI endpoint allows users to convert ContentHash to an IRI.
regen.data.v2.ConvertHashToIRI
Example:
grpcurl -plaintext \
-d '{
"content_hash": {
"graph": {
"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=",
"digest_algorithm": "DIGEST_ALGORITHM_BLAKE2B_256",
"canonicalization_algorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015"
}
}
}' \
localhost:9090 \
regen.data.v2.Query/ConvertHashToIRI
Example Output:
{
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf"
}
REST
A user can query the data module using REST endpoints.
anchor-by-iri
The anchor-by-iri endpoint allows users to query a data anchor by the IRI of the data.
/regen/data/v2/anchor-by-iri/{iri}
/regen/data/v2/anchors/iri/{iri}
Example:
curl localhost:1317/regen/data/v2/anchors/iri/regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf
Example Output:
{
"anchor": {
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf",
"content_hash": {
"raw": null,
"graph": {
"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=",
"digest_algorithm": "DIGEST_ALGORITHM_BLAKE2B_256",
"canonicalization_algorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015",
"merkle_tree": "GRAPH_MERKLE_TREE_NONE_UNSPECIFIED"
}
},
"timestamp": "2022-07-06T11:54:58.464341467Z"
}
}
anchor-by-hash
The anchor-by-hash allows users to query a data anchor by the ContentHash of the data.
/regen/data/v2/anchor-by-hash
/regen/data/v2/anchors/hash
Example:
curl \
-d '{"content_hash": {"graph": {"canonicalization_algorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015","digest_algorithm": "DIGEST_ALGORITHM_BLAKE2B_256","hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY="}}}' \
-H 'Content-Type: application/json' \
localhost:1317/regen/data/v2/anchors/hash
Example Output:
{
"anchor": {
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf",
"content_hash": {
"raw": null,
"graph": {
"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=",
"digest_algorithm": "DIGEST_ALGORITHM_BLAKE2B_256",
"canonicalization_algorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015",
"merkle_tree": "GRAPH_MERKLE_TREE_NONE_UNSPECIFIED"
}
},
"timestamp": "2022-07-06T11:54:58.464341467Z"
}
}
attestations-by-attestor
The attestations-by-attestor endpoint allows users to query data attestations by an attestor.
/regen/data/v2/attestations-by-attestor/{attestor}
/regen/data/v2/attestations/attestor/{attestor}
Example:
curl localhost:1317/regen/data/v2/attestations-by-attestor/regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5
Example Output:
{
"attestations": [
{
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf",
"attestor": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5",
"timestamp": "2022-07-07T05:44:06.119352311Z"
}
],
"pagination": null
}
attestations-by-iri
The attestations-by-iri allows users to query data attestations by IRI.
/regen/data/v2/attestations-by-iri/{iri}
/regen/data/v2/attestations/iri/{iri}
Example:
curl localhost:1317/regen/data/v2/attestations-by-iri/regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf
Example Output:
{
"attestations": [
{
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf",
"attestor": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5",
"timestamp": "2022-07-07T05:44:06.119352311Z"
}
],
"pagination": null
}
attestations-by-hash
The attestations-by-hash allows users to query data attestations by the ContentHash of the data.
/regen/data/v2/attestations-by-hash
/regen/data/v2/attestations/hash
Example:
curl \
-d '{"content_hash": {"graph": {"canonicalization_algorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015","digest_algorithm": "DIGEST_ALGORITHM_BLAKE2B_256","hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY="}}}' \
-H 'Content-Type: application/json' \
localhost:1317/regen/data/v2/attestations/hash
Example Output:
{
"attestations": [
{
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf",
"attestor": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5",
"timestamp": "2022-07-07T05:44:06.119352311Z"
}
],
"pagination": null
}
resolver
The resolver endpoint allows users to query a resolver by its unique identifier.
/regen/data/v2/resolver/{id}
/regen/data/v2/resolvers/{id}
Example:
curl localhost:1317/regen/data/v2/resolvers/1
Example Output:
{
"resolver": {
"id": "1",
"url": "http://foo.bar",
"manager": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5"
}
}
resolvers-by-iri
The resolvers-by-iri endpoint allows users to query resolvers with registered data by the IRI of the data.
/regen/data/v2/resolvers-by-iri/{iri}
/regen/data/v2/resolvers/iri/{iri}
Example:
curl localhost:1317/regen/data/v2/resolvers/iri/regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf
Example Output:
{
"resolvers": [
{
"id": "1",
"url": "http://foo.bar",
"manager": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5"
}
],
"pagination": null
}
resolvers-by-hash
The resolvers-by-hash endpoint allows users to query resolvers with registered data by the ContentHash of the data.
/regen/data/v2/resolvers-by-hash
/regen/data/v2/resolvers/hash
Example:
curl \
-d '{"content_hash":{"graph":{"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=","digest_algorithm": "DIGEST_ALGORITHM_BLAKE2B_256","canonicalization_algorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015"}}}' \
-H 'Content-Type: application/json' \
localhost:1317/regen/data/v2/resolvers/hash
Example Output:
{
"resolvers": [
{
"id": "1",
"url": "http://foo.bar",
"manager": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5"
}
],
"pagination": null
}
resolvers-by-url
The resolvers-by-url allows users to query resolvers by URL.
/regen/data/v2/resolvers-by-url
/regen/data/v2/resolvers/url
Example:
curl \
-d '{"url":"http://foo.bar"}' \
-H 'Content-Type: application/json' \
localhost:1317/regen/data/v2/resolvers/url
Example Output:
{
"resolvers": [
{
"id": "1",
"url": "http://foo.bar",
"manager": "regen1k82wewrfkhdmegw6uxrgwwzrsd7593t8tej2d5"
}
],
"pagination": null
}
convertIRI-to-hash
The convertIRI-to-hash allows users to convert IRI to a ContentHash.
/regen/data/v2/convert-iri-to-hash/{iri}
Example:
curl localhost:1317/regen/data/v2/convert-iri-to-hash/regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf
Example Output:
{
"content_hash": {
"raw": null,
"graph": {
"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=",
"digest_algorithm": "DIGEST_ALGORITHM_BLAKE2B_256",
"canonicalization_algorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015",
"merkle_tree": "GRAPH_MERKLE_TREE_NONE_UNSPECIFIED"
}
}
}
convert-hash-to-IRI
The convert-hash-to-IRI endpoint allows users to convert ContentHash to an IRI.
/regen/data/v2/convert-hash-to-iri
Example:
curl \
-d '{"content_hash": {"raw": null,"graph": {"hash": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=","digest_algorithm":"DIGEST_ALGORITHM_BLAKE2B_256","canonicalization_algorithm": "GRAPH_CANONICALIZATION_ALGORITHM_URDNA2015"}}}' \
-H 'Content-Type: application/json' \
localhost:1317/regen/data/v2/convert-hash-to-iri
Example Output:
{
"iri": "regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf"
}