Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
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.
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
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
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.
Baseline core messaging package.
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. 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 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.
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
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
.NET client
Any client supported by the service. These include:
- reference implementation (see examples/bri-1/base-example
)
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
One or more "core" baseline protocol packages are needed to baseline-enable applications and systems of record.
Package
Source Path
Description
@baseline-protocol/api
core/api
Core baseline API package providing unified access to the baseline
JSON-RPC module and blockchain, registry and key management interfaces
@baseline-protocol/baseline
core/baseline
Core baseline package provides unified access to internal integration middleware interfaces for systems of record
@baseline-protocol/ccsm
core/ccsm
Core ccsm package provides interfaces for general interaction with an underlying mainnet
@baseline-protocol/identity
core/identity
Core identity package provides interfaces for organization registry and decentralized identifiers (DIDs)
@baseline-protocol/privacy
core/privacy
Core privacy package provides interfaces supporting Prover
systems and and zero-knowledge cryptography
@baseline-protocol/types
core/types
Core reusable type definitions
@baseline-protocol/vaults
core/vaults
Core vault Provides management interfaces for digital authentication credentials such as keys and secrets
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
.