Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ethr-did-resolver

Package Overview
Dependencies
Maintainers
7
Versions
84
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ethr-did-resolver - npm Package Compare versions

Comparing version 3.0.3 to 3.1.0

lib/configuration.d.ts

7

CHANGELOG.md

@@ -0,1 +1,8 @@

# [3.1.0](https://github.com/decentralized-identity/ethr-did-resolver/compare/3.0.3...3.1.0) (2021-03-15)
### Features
* upgrade to latest did core spec ([#99](https://github.com/decentralized-identity/ethr-did-resolver/issues/99)) ([#109](https://github.com/decentralized-identity/ethr-did-resolver/issues/109)) ([d46eea3](https://github.com/decentralized-identity/ethr-did-resolver/commit/d46eea3ad4d85450f75a645ea9b33aa5223dd7b0)), closes [#105](https://github.com/decentralized-identity/ethr-did-resolver/issues/105) [#95](https://github.com/decentralized-identity/ethr-did-resolver/issues/95) [#106](https://github.com/decentralized-identity/ethr-did-resolver/issues/106) [#83](https://github.com/decentralized-identity/ethr-did-resolver/issues/83) [#85](https://github.com/decentralized-identity/ethr-did-resolver/issues/85) [#83](https://github.com/decentralized-identity/ethr-did-resolver/issues/83) [#85](https://github.com/decentralized-identity/ethr-did-resolver/issues/85) [#95](https://github.com/decentralized-identity/ethr-did-resolver/issues/95) [#105](https://github.com/decentralized-identity/ethr-did-resolver/issues/105) [#106](https://github.com/decentralized-identity/ethr-did-resolver/issues/106)
## [3.0.3](https://github.com/decentralized-identity/ethr-did-resolver/compare/3.0.2...3.0.3) (2020-12-17)

@@ -2,0 +9,0 @@

116

package.json
{
"name": "ethr-did-resolver",
"version": "3.0.3",
"version": "3.1.0",
"description": "Resolve DID documents around ethereum addresses",
"main": "dist/ethr-did-resolver.js",
"source": "src/ethr-did-resolver.js",
"types": "index.d.ts",
"main": "lib/index.umd.js",
"source": "src/index.ts",
"module": "lib/index.modern.js",
"types": "lib/index.d.ts",
"repository": {

@@ -23,7 +24,27 @@ "type": "git",

"author": "Pelle Braendgaard <pelle.braendgaard@consensys.net>",
"contributors": [
"Mircea Nistor <mircea.nistor@mesh.xyz>"
],
"license": "Apache-2.0",
"keywords": [
"DID",
"DID document",
"PKI",
"resolver",
"resolve",
"Verifiable Credential",
"W3C",
"ethereum",
"ethereumAddress",
"blockchainAccountId",
"registry",
"EIP1056",
"EcdsaSecp256k1RecoveryMethod2020",
"Ed25519VerificationKey2018",
"did:ethr"
],
"scripts": {
"build": "microbundle",
"lint": "eslint \"src/**/*.js\"",
"format": "prettier --write \"src/**/*.js\"",
"lint": "eslint \"src/**/*.[jt]s\"",
"format": "prettier --write \"src/**/*.[jt]s\"",
"prepare": "npm run build",

@@ -35,68 +56,45 @@ "prepublishOnly": "npm test && npm run build",

},
"jest": {
"coverageDirectory": "./coverage/",
"collectCoverage": true,
"testURL": "http://localhost/",
"transform": {
"^.+\\.jsx?$": "babel-jest"
}
},
"devDependencies": {
"@babel/cli": "7.12.10",
"@babel/core": "7.12.10",
"@babel/preset-env": "7.12.11",
"@commitlint/cli": "11.0.0",
"@commitlint/config-conventional": "11.0.0",
"@babel/core": "^7.13.10",
"@babel/preset-env": "^7.13.10",
"@babel/preset-typescript": "^7.13.0",
"@commitlint/cli": "^12.0.1",
"@commitlint/config-conventional": "^12.0.1",
"@semantic-release/changelog": "5.0.1",
"@semantic-release/git": "9.0.0",
"babel-jest": "26.6.3",
"@types/jest": "^26.0.20",
"@typescript-eslint/eslint-plugin": "^4.17.0",
"@typescript-eslint/parser": "^4.17.0",
"babel-jest": "^26.6.3",
"codecov": "3.8.1",
"eslint": "7.15.0",
"eslint-config-standard": "16.0.2",
"eslint-plugin-import": "2.22.1",
"eslint-plugin-jest": "24.1.3",
"eslint-plugin-node": "11.1.0",
"eslint-plugin-promise": "4.2.1",
"eslint-plugin-standard": "4.1.0",
"ganache-cli": "6.10.2",
"husky": "4.3.6",
"jdom": "3.2.1",
"eslint": "^7.21.0",
"eslint-config-prettier": "^8.1.0",
"ganache-cli": "^6.12.2",
"husky": "^5.1.3",
"jest": "26.6.3",
"microbundle": "0.12.4",
"prettier": "2.2.1",
"regenerator-runtime": "0.13.7",
"semantic-release": "17.3.0",
"truffle-contract": "3.0.7"
"microbundle": "^0.13.0",
"prettier": "^2.2.1",
"pretty-quick": "^3.1.0",
"semantic-release": "^17.4.1",
"typescript": "^4.2.3",
"uint8arrays": "^2.1.3"
},
"dependencies": {
"buffer": "^6.0.0",
"did-resolver": "2.1.2",
"elliptic": "^6.5.3",
"ethjs-abi": "^0.2.1",
"ethjs-contract": "^0.2.0",
"ethjs-provider-http": "^0.1.6",
"ethjs-query": "^0.3.5",
"ethr-did-registry": "^0.0.3",
"js-sha3": "^0.8.0"
"@ethersproject/abi": "^5.0.13",
"@ethersproject/abstract-signer": "^5.0.14",
"@ethersproject/address": "^5.0.11",
"@ethersproject/basex": "^5.0.9",
"@ethersproject/bignumber": "^5.0.15",
"@ethersproject/contracts": "^5.0.12",
"@ethersproject/providers": "^5.0.24",
"@ethersproject/transactions": "^5.0.11",
"did-resolver": "^3.0.2",
"ethr-did-registry": "^0.0.3"
},
"husky": {
"hooks": {
"pre-commit": "pretty-quick --staged",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"standard": {
"ignore": [
"lib/**"
],
"globals": [
"it",
"describe",
"expect",
"jest",
"beforeAll",
"beforeEach",
"afterAll",
"afterEach"
]
}
}
---
title: "Ethr DID Resolver"
index: 7
category: "ethr-did-resolver"
index: 7 category: "ethr-did-resolver"
type: "reference"

@@ -13,9 +12,11 @@ source: "https://github.com/decentralized-identity/ethr-did-resolver/blob/develop/README.md"

[![CircleCI](https://circleci.com/gh/decentralized-identity/ethr-did-resolver.svg?style=svg)](https://circleci.com/gh/decentralized-identity/ethr-did-resolver)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/7bcde296af8e467787b04c956c2c9f6f)](https://www.codacy.com/manual/uport-project/ethr-did-resolver?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=uport-project/ethr-did-resolver&amp;utm_campaign=Badge_Grade)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/7bcde296af8e467787b04c956c2c9f6f)](https://www.codacy.com/manual/uport-project/ethr-did-resolver?utm_source=github.com&utm_medium=referral&utm_content=uport-project/ethr-did-resolver&utm_campaign=Badge_Grade)
This library is intended to use ethereum addresses as fully self managed
[Decentralized Identifiers](https://w3c-ccg.github.io/did-spec/#decentralized-identifiers-dids) and wrap them in a
[DID Document](https://w3c-ccg.github.io/did-spec/#did-documents)
This library is intended to use ethereum addresses as fully self managed [Decentralized Identifiers](https://w3c-ccg.github.io/did-spec/#decentralized-identifiers-dids) and wrap them in a [DID Document](https://w3c-ccg.github.io/did-spec/#did-documents)
It supports the proposed [Decentralized Identifiers](https://w3c-ccg.github.io/did-spec/) spec from the
[W3C Credentials Community Group](https://w3c-ccg.github.io).
It supports the proposed [Decentralized Identifiers](https://w3c-ccg.github.io/did-spec/) spec from the [W3C Credentials Community Group](https://w3c-ccg.github.io).
It requires the `did-resolver` library, which is the primary interface for resolving DIDs.

@@ -36,41 +37,52 @@

For example:
`did:ethr:rinkeby:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74` gets resolved on the rinkeby testnet, and represents a
distinct identifier than the generic one.
`did:ethr:0x4:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74` gets resolved on the rinkeby testnet (chainID=0x4), and
represents a distinct identifier than the generic one.
## DID Document
The did resolver takes the ethereum address, checks for the current controller, looks at contract events and builds a simple DID document.
The did resolver takes the ethereum address, checks for the current controller, looks at contract events and builds a
simple DID document.
The minimal DID document for a an ethereum address `0xb9c5714089478a327f09197987f16f9e5d936e8a` with no transactions to the registry looks like this:
The minimal DID document for a an ethereum address `0xb9c5714089478a327f09197987f16f9e5d936e8a` with no transactions to
the registry looks like this:
```javascript
```json
{
'@context': 'https://w3id.org/did/v1',
id: 'did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a',
publicKey: [{
id: 'did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a#controller',
type: 'Secp256k1VerificationKey2018',
controller: 'did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a',
ethereumAddress: '0xb9c5714089478a327f09197987f16f9e5d936e8a'}],
authentication: [{
type: 'Secp256k1SignatureAuthentication2018',
publicKey: 'did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a#controller'}]
"@context": [
"https://www.w3.org/ns/did/v1",
"https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld"
],
"id": "did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a",
"verificationMethod": [
{
"id": "did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a#controller",
"type": "EcdsaSecp256k1RecoveryMethod2020",
"controller": "did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a",
"blockchainAccountId": "0xb9c5714089478a327f09197987f16f9e5d936e8a"
}
],
"authentication": ["did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a#controller"]
}
```
Note this uses the `Secp256k1VerificationKey2018` type and an `ethereumAddress` instead of a `publicKeyHex`.
Note this uses the `EcdsaSecp256k1RecoveryMethod2020` type and an `blockchainAccountId` to represent the default
verification method and authentication entry.
## Building a DID document
The DID document is built by using read only functions and contract events on the [ethr-did-registry](https://github.com/uport-project/ethr-did-registry) Ethereum smart contract.
The DID document is built by using read only functions and contract events on
the [ethr-did-registry](https://github.com/uport-project/ethr-did-registry) Ethereum smart contract.
Any value from the registry that returns an ethereum address will be added to the `publicKey` array of the DID document with type `Secp256k1VerificationKey2018` and an `ethereumAddress` attribute containing the address.
Any value from the registry that returns an ethereum address will be added to the `verificationMethod` array of the DID document
with type `EcdsaSecp256k1RecoveryMethod2020` and an `blockchainAccountId` attribute containing the address.
### Controller Address
Each identity always has a controller address. By default it's the same as the identity address, but check the read only contract function `identityOwner(address identity)` on the deployed version of the EthrDIDRegistry contract.
Each identity always has a controller address. By default it's the same as the identity address, but check the read only
contract function `identityOwner(address identity)` on the deployed version of the EthrDIDRegistry contract.
The Identity controller will always have a `publicKey` with the id set as the DID with the fragment `#controller` appended.
The Identity controller will always have a `verificationMethod` with the id set as the DID with the fragment `#controller`
appended.
An entry is also added to the `authentication` array of the DID document with type `Secp256k1SignatureAuthentication2018`.
An entry is also added to the `authentication` array of the DID document with the id of the controller publicKey.

@@ -102,3 +114,4 @@ ### Enumerating contract events for an identity

They are also verifiable from solidity (see [ethr-did-registry](https://github.com/uport-project/ethr-did-registry) for more info).
They are also verifiable from solidity (see [ethr-did-registry](https://github.com/uport-project/ethr-did-registry) for
more info).

@@ -109,8 +122,8 @@ A `DIDDelegateChanged` event is published that is used to build a DID.

event DIDDelegateChanged(
address indexed identity,
bytes32 delegateType,
address delegate,
uint validTo,
uint previousChange
);
address indexed identity,
bytes32 delegateType,
address delegate,
uint validTo,
uint previousChange
);
```

@@ -120,6 +133,8 @@

- `veriKey` Which adds a `Secp256k1VerificationKey2018` to the `publicKey` section of document
- `sigAuth` Which adds a `Secp256k1SignatureAuthentication2018` to the `publicKey` section of document. An entry is also added to the `authentication` section of document.
- `veriKey` Which adds a `EcdsaSecp256k1RecoveryMethod2020` to the `verificationMethod` section of document
- `sigAuth` Which adds a `EcdsaSecp256k1RecoveryMethod2020` to the `verificationMEthod` section of document and then
references it in the 'authentication` section of document.
**Note** The `delegateType` is a `bytes32` type for Ethereum gas efficiency reasons and not a string. This restricts us to 32 bytes, which is why we use the short hand versions above.
**Note** The `delegateType` is a `bytes32` type for Ethereum gas efficiency reasons and not a string. This restricts us
to 32 bytes, which is why we use the short hand versions above.

@@ -130,17 +145,20 @@ Only events with a `validTo` in seconds greater or equal to current time should be included in the DID document.

Non ethereum keys, service elements etc can be added using attributes. Attributes only exist on the blockchain as contract events of type `DIDAttributeChanged` and can thus not be queried from within solidity code.
Non ethereum keys, service elements etc can be added using attributes. Attributes only exist on the blockchain as
contract events of type `DIDAttributeChanged` and can thus not be queried from within solidity code.
```solidity
event DIDAttributeChanged(
address indexed identity,
bytes32 name,
bytes value,
uint validTo,
uint previousChange
);
address indexed identity,
bytes32 name,
bytes value,
uint validTo,
uint previousChange
);
```
**Note** The `name` is a `bytes32` type for Ethereum gas efficiency reasons and not a string. This restricts us to 32 bytes, which is why we use the short hand attribute versions below.
**Note** The `name` is a `bytes32` type for Ethereum gas efficiency reasons and not a string. This restricts us to 32
bytes, which is why we use the short hand attribute versions below.
While any attribute can be stored. For the DID document we currently support adding to each of these sections of the DID document:
While any attribute can be stored. For the DID document we currently support adding to each of these sections of the DID
document:

@@ -154,3 +172,3 @@ - [`Public Keys`](https://w3c-ccg.github.io/did-spec/#public-keys)

`did/pub/(Secp256k1|RSA|Ed25519|X25519)/(veriKey|sigAuth|enc)/(hex|base64)`
`did/pub/(Secp256k1|RSA|Ed25519|X25519)/(veriKey|sigAuth|enc)/(hex|base64|base58)`

@@ -161,9 +179,10 @@ (Essentially `did/pub/<key algorithm>/<key purpose>/<encoding>`)

- `veriKey` adds a `<key algorithm>VerificationKey2018` to the `publicKey` section of document
- `sigAuth` adds a `<key algorithm>SignatureAuthentication2018` to the `publicKey` section of document. An entry is also added to the `authentication` section of document.
- `enc` adds a `<key algorithm>KeyAgreementKey2019` to the `publicKey` section.
This is used to perform a Diffie-Hellman key exchange and derive a secret key for encrypting messages to the DID that lists such a key.
- `veriKey` adds the corresponding verification key to the `verificationMethod` section of document
- `sigAuth` adds the corresponding verification key to the `verificationMethod` section of document and adds an entry to
the `authentication` section of document.
- `enc` adds a key agreement key to the `verificationMethod` section. This is used to perform a Diffie-Hellman key
exchange and derive a secret key for encrypting messages to the DID that lists such a key.
> **Note** The `<encoding>` only refers to the key encoding in the resolved DID document.
> Attribute values should always be hex encoded.
> Attribute values sent to the ERC1056 registry should always be hex encoded.

@@ -174,10 +193,10 @@ #### Example hex encoded Secp256k1 Verification Key

`did/pub/Secp256k1/veriKey/hex` and the value of `0x02b97c30de767f084ce3080168ee293053ba33b235d7116a3263d29f1450936b71`
generates a `PublicKey` entry like this:
generates a `verificationMethod` entry like this:
```javascript
```json
{
id: "did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74#delegate-1",
type: "Secp256k1VerificationKey2018",
controller: "did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74",
publicKeyHex: '02b97c30de767f084ce3080168ee293053ba33b235d7116a3263d29f1450936b71'
"id": "did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74#delegate-1",
"type": "EcdsaSecp256k1VerificationKey2019",
"controller": "did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74",
"publicKeyHex": "02b97c30de767f084ce3080168ee293053ba33b235d7116a3263d29f1450936b71"
}

@@ -190,3 +209,3 @@ ```

`did/pub/Ed25519/veriKey/base64` and the value of
`0xb97c30de767f084ce3080168ee293053ba33b235d7116a3263d29f1450936b71` generates a `PublicKey` entry like this:
`0xb97c30de767f084ce3080168ee293053ba33b235d7116a3263d29f1450936b71` generates a `verificationMethod` entry like this:

@@ -207,10 +226,10 @@ ```javascript

`0x302a300506032b656e032100118557777ffb078774371a52b00fed75561dcf975e61c47553e664a617661052`
generates a `PublicKey` entry like this:
generates a `verificationMethod` entry like this:
```javascript
```json
{
id: "did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74#delegate-1",
type: "X25519KeyAgreementKey2019",
controller: "did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74",
publicKeyBase64: "MCowBQYDK2VuAyEAEYVXd3/7B4d0NxpSsA/tdVYdz5deYcR1U+ZkphdmEFI="
"id": "did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74#delegate-1",
"type": "X25519KeyAgreementKey2019",
"controller": "did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74",
"publicKeyBase64": "MCowBQYDK2VuAyEAEYVXd3/7B4d0NxpSsA/tdVYdz5deYcR1U+ZkphdmEFI="
}

@@ -227,12 +246,13 @@ ```

#### Hex encoded Secp256k1 Verification Key
Example:
A `DIDAttributeChanged` event for the identity `0xf3beac30c498d9e26865f34fcaa57dbb935b0d74` with the name
`did/svc/HubService` and value of the url `https://hubs.uport.me` hex encoded as
`0x68747470733a2f2f687562732e75706f72742e6d65` generates a `Service` entry like this:
`did/svc/HubService` and value of the URL `https://hubs.uport.me` hex encoded as
`0x68747470733a2f2f687562732e75706f72742e6d65` generates a service endpoint entry like the following:
```javascript
```json
{
type: "HubService",
serviceEndpoint: "https://hubs.uport.me"
"id": "did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74#service-1",
"type": "HubService",
"serviceEndpoint": "https://hubs.uport.me"
}

@@ -243,6 +263,6 @@ ```

The library presents a `resolver()` function that returns a ES6 Promise returning the DID document.
It is not meant to be used directly but through the
[`did-resolver`](https://github.com/decentralized-identity/did-resolver) aggregator.
You can use the `getResolver(conf)` method to produce an entry that can be used with the `Resolver`
The library presents a `resolver()` function that returns a ES6 Promise returning the DID document. It is not meant to
be used directly but through the
[`did-resolver`](https://github.com/decentralized-identity/did-resolver) aggregator. You can use the `getResolver(conf)`
method to produce an entry that can be used with the `Resolver`
constructor.

@@ -254,5 +274,7 @@

// You can set a rpc endpoint to be used by the web3 provider
// You can also set an address for your own ethr-did-registry contract
const providerConfig = { rpcUrl: 'https://rinkeby.infura.io/ethr-did', registry: registry.address }
// While experimenting, you can set a rpc endpoint to be used by the web3 provider
// You can also set the address for your own ethr-did-registry contract
const providerConfig = { rpcUrl: 'http://localhost:7545', registry: registry.address }
// It's recommended to use the multi-network configuration when using this in production
// since that allows you to resolve on multiple public and private networks at the same time.

@@ -263,3 +285,3 @@ // getResolver will return an object with a key/value pair of { "ethr": resolver } where resolver is a function used by the generic did resolver.

didResolver.resolve('did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74').then(doc => console.log)
didResolver.resolve('did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74').then((doc) => console.log)

@@ -272,3 +294,5 @@ // You can also use ES7 async/await syntax

An example configuration for multi-network DID resolving would look like this:
In production, you will most likely want the ability to resolve DIDs that are based in different ethereum networks. To
do this, you need a configuration that sets the network name or chain ID (and even the registry address) for each
network. An example configuration for multi-network DID resolving would look like this:

@@ -280,4 +304,5 @@ ```javascript

{ name: "0x4", rpcUrl: "https://rinkeby.infura.io/v3/<YOUR PROJECT ID>" }
{ name: "rsk:testnet", registry: "0xdca7ef03e98e0dc2b855be647c39abe984fcf21b", rpcUrl: "https://did.testnet.rsk.co:4444" }
{ name: "development", rpcUrl: "http://localhost:7545" }
{ name: "rsk:testnet", chainId: "0x1f", rpcUrl: "https://did.testnet.rsk.co:4444" }
{ name: "development", rpcUrl: "http://localhost:7545", registry: "0xdca7ef03e98e0dc2b855be647c39abe984fcf21b" }
{ name: "myprivatenet", chainId: 123456, rpcUrl: "https://my.private.net.json.rpc.url" }
]

@@ -289,13 +314,16 @@ }

This allows you to resolve ethr-did's of the formats:
* `did:ethr:0xabcabc03e98e0dc2b855be647c39abe984193675` (uses mainnet configuration)
* `did:ethr:mainnet:0xabcabc03e98e0dc2b855be647c39abe984193675`
* `did:ethr:0x4:0xabcabc03e98e0dc2b855be647c39abe984193675`
* `did:ethr:development:0xabcabc03e98e0dc2b855be647c39abe984193675`
* `did:ethr:rsk:testnet:0xabcabc03e98e0dc2b855be647c39abe984193675`
The configuration from above allows you to resolve ethr-did's of the formats:
For each network you can specify either an `rpcUrl`, a `provider` or a `web3` instance that can be used to access that particular network.
- `did:ethr:mainnet:0xabcabc03e98e0dc2b855be647c39abe984193675`
- `did:ethr:0xabcabc03e98e0dc2b855be647c39abe984193675` (defaults to mainnet configuration)
- `did:ethr:0x4:0xabcabc03e98e0dc2b855be647c39abe984193675` (refer to the rinkeby network by chainID)
- `did:ethr:rsk:testnet:0xabcabc03e98e0dc2b855be647c39abe984193675`
- `did:ethr:development:0xabcabc03e98e0dc2b855be647c39abe984193675`
- `did:ethr:myprivatenet:0xabcabc03e98e0dc2b855be647c39abe984193675`
These providers will have to support and `eth_call`, `eth_getLogs` to be able to resolve DIDs specific to that network.
For each network you can specify either an `rpcUrl`, a `provider` or a `web3` instance that can be used to access that
particular network.
These providers will have to support `eth_call` and `eth_getLogs` to be able to resolve DIDs specific to that network.
You can also override the default registry address by specifying a `registry` attribute per network.
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc