Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Baseline core API package.
npm install @baseline-protocol/api
(npm package soon to be published)
You can build the package locally with npm run build
.
Run the local test suite with npm test
.
An initial set of JSON-RPC methods have been defined for inclusion in the specification. These methods allow easy interaction with on-chain shield contracts (which contain merkle-tree fragments) and maintain full merkle-trees (along with metadata) in local off-chain storage.
Nethermind .NET client
Any client supported by the commit-mgr service. These include:
IBaselineRPC
IRegistry
IVault
The following providers of the Baseline API are available:
Ethers.js - example provider; not yet implemented but included here for illustrative purposes
RPC - generic JSON-RPC provider
Method
Params
Description
baseline_getCommit
address, commitIndex
Retrieve a single commit from a tree at the given shield contract address
baseline_getCommits
address, startIndex, count
Retrieve multiple commits from a tree at the given shield contract address
baseline_getRoot
address
Retrieve the root of a tree at the given shield contract address
baseline_getProof
address, commitIndex
Retrieve the membership proof for the given commit index
baseline_getTracked
Retrieve a list of the shield contract addresses being tracked and persisted
baseline_verifyAndPush
sender, address, proof, publicInputs, commit
Inserts a single commit in a tree for a given shield contract address
baseline_track
address
Initialize a merkle tree database for the given shield contract address
baseline_untrack
address
Remove event listeners for a given shield contract address
baseline_verify
address, value, siblings
Verify a proof for a given root and commit value
The Baseline core CCSM package provides interfaces for general interaction with an underlying mainnet or layer-2 distributed solution.
npm install @baseline-protocol/ccsm
(npm package soon to be published)
You can build the package locally with make
. The build compiles the Baseline solidity contracts package and its dependencies using truffle.
The contracts package includes a generic "shield" contract which enforces on-chain verification of commitments before they are added to the on-chain merkle-tree. The logic encoded into the on-chain "verifier" contract can be custom code or a workgroup can choose to use a generic verifier (i.e. verifier may only require that a commitment is signed by each workgroup member). For convenience, a "VerifierNoop" contract is provided in the contracts package for testing a baseline workflow. The "no-op" verifier will return true
for any set of arguments with the proper types.
The core baseline package provides unified access to internal integration middleware interfaces for systems of record.
npm install @baseline-protocol/baseline
(npm package soon to be published)
You can build the package locally with npm run build
.
Run the local test suite with npm test
.
An initial set of JSON-RPC methods have been defined for inclusion in the specification. These methods allow easy interaction with on-chain shield contracts (which contain merkle-tree fragments) and maintain full merkle-trees (along with metadata) in local off-chain storage.
Nethermind .NET client
Any client supported by the commit-mgr service. These include:
IBaselineRPC
IRegistry
IVault
The following providers of the Baseline API are available:
Ethers.js - example provider; not yet implemented but included here for illustrative purposes
RPC - generic JSON-RPC provider
Method
Params
Description
baseline_getCommit
address, commitIndex
Retrieve a single commit from a tree at the given shield contract address
baseline_getCommits
address, startIndex, count
Retrieve multiple commits from a tree at the given shield contract address
baseline_getRoot
address
Retrieve the root of a tree at the given shield contract address
baseline_getProof
address, commitIndex
Retrieve the membership proof for the given commit index
baseline_getTracked
Retrieve a list of the shield contract addresses being tracked and persisted
baseline_verifyAndPush
sender, address, proof, publicInputs, commit
Inserts a single commit in a tree for a given shield contract address
baseline_track
address
Initialize a merkle tree database for the given shield contract address
baseline_untrack
address
Remove event listeners for a given shield contract address
baseline_verify
address, value, siblings
Verify a proof for a given root and commit value
Package | Source Path | Description |
|
| Core baseline API package providing unified access to the |
|
| Core baseline package provides unified access to internal integration middleware interfaces for systems of record |
|
| Core ccsm package provides interfaces for general interaction with an underlying mainnet |
|
| Core identity package provides interfaces for organization registry and decentralized identifiers (DIDs) |
|
| Core privacy package provides interfaces supporting |
|
| Core reusable type definitions |
|
| Core vault Provides management interfaces for digital authentication credentials such as keys and secrets |
Baseline core messaging package.
​NATS is currently the default point-to-point messaging provider and the recommended way for organizations to exchange secure protocol messages. NATS was chosen due to its high-performance capabilities, community/enterprise footprint, interoperability with other systems and protocols (i.e. Kafka and MQTT) and its decentralized architecture.‌
npm install @baseline-protocol/vault
(npm package soon to be published)
You can build the package locally with npm run build
.‌
IMessagingService
The following messaging providers are available:‌
NATS
Whisper
Baseline core identity package.
npm install @baseline-protocol/identity
(npm package soon to be published)
You can build the package locally with npm run build
.
Each organization registered within the OrgRegistry
first generates a secp256k1
keypair and uses the Ethereum public address representation as "primary key" for future resolution. This key SHOULD NOT sign transactions. A best practice is to use an HD wallet to rotate keys, preventing any account from signing more than a single transaction.
Note that an organization may not update its address
.
Baseline core privacy package.
npm install @baseline-protocol/privacy
(npm package soon to be published)
You can build the package locally with npm run build
.
IZKSnarkCircuitProvider
The following zkSNARK toolboxes are supported:
gnark