Observed since 20 Oct, 19:45 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Blockchain utils for 3ID
This package contains a bunch of utilities that is used by 3ID and 3Box in order to create and verify links from blockchain addresses.
$ npm install --save 3id-blockchain-utils
Import the package into your project
import { createLink, validateLink, authenticate } from '3id-blockchain-utils'
Use the library to create and verify links:
const did = 'did:3:bafypwg9834gf...'
const proof = await createLink(did, '0x123abc...', ethereumProvider)
console.log(proof)
const verified = await validateLink(proof)
if (verified) {
console.log('Proof is valid', proof)
} else {
console.log('Proof is invalid')
}
Use the library for 3ID authenticate:
await authenticate(message, '0x123abc...', ethereumProvider)
Below you can see a table which lists supported blockchains and their provider objects.
| Blockchain | CAIP-2 namespace | Supported providers |
|---|---|---|
| Ethereum | eip155 | metamask-like ethereum provider |
| Filecoin | fil | Filecoin Wallet Provider |
If you want to add support for a new blockchain to 3ID this is the place to do so. This library uses CAIP-10 to represent accounts in a blockchain agnostic way. If the blockchain you want to add isn't already part of the CAIP standards you shold make sure to add it there.
To begin adding support for a given blockchain add a file with the path: src/blockchains/<blockchain-name>.js. This module needs to export three functions:
createLink - creates a LinkProof object which associates the specified AccountID with the DIDvalidateLink - validates the given LinkProofauthenticate - signs a message and returns some entropy based on the signature. Needs to be deterministicIt also needs to export a constant called namespace. This constant is a string which contains the CAIP-2 chainId namespace.
Please see src/blockchains/ethereum.js for an example of how this is implemented for the eip155 (ethereum) CAIP-2 namespace.
Finally add support for your blockchain in src/index.js. Simply add it to the handlers array.
Test the code by running:
$ npm test
Apache-2.0 OR MIT
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.3.1Registry latest | 16 Dec 2020 | 29 | |
| 1.3.0 | 16 Dec 2020 | 29 | |
| 1.2.0 | 9 Dec 2020 | 27 | |
| 1.1.1 | 24 Nov 2020 | 23 | |
| 1.1.0 | 18 Nov 2020 | 23 | |
| 1.0.0 | 11 Aug 2020 | 18 | |
| 0.4.1 | 6 Aug 2020 | 14 | |
| 0.4.0 | 30 May 2020 | 14 | |
| 0.3.4 | 18 May 2020 | 12 | |
| 0.3.3 | 17 Mar 2020 | 12 | |
| 0.3.2 | 26 Nov 2019 | 12 | |
| 0.3.1 | 26 Nov 2019 | 12 | |
| 0.3.0 | 13 Nov 2019 | 12 | |
| 0.2.1 | 12 Nov 2019 | 12 | |
| 0.2.0 | 12 Nov 2019 | 12 | |
| 0.2.0-beta.3 | 12 Nov 2019 | 12 | |
| 0.2.0-beta.2 | 12 Nov 2019 | 12 | |
| 0.2.0-beta.1 | 12 Nov 2019 | 12 | |
| 0.1.0 | 11 Nov 2019 | 10 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 19:45 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:fb3fca70e4bc1527145d5846a0690372157f67003bcc3bc6a3d460bc9d7e516b