arkognito/semaphore. Enable membership on the normal client with
semaphore: { group, snarkArtifacts? }. This reference describes the published
arkognito@0.1.0 package. Install it or build from main as explained in
the guide.
Types
fromBlock is the actual group creation block.
Group administration
expires is a relative lifetime in seconds. Omit initial members to create an empty group.
Alternatively pass a commitment array, or an async callback receiving the predicted descriptor
with memberCount. The callback runs under the writer queue; it must return that many commitments.
The returned confirmed descriptor replaces draft fromBlock: "0" with the creation block.
Only the configured admin can append members through the helper. Appending assigns contiguous
indexes, rejects duplicates and observes capacity. Helpers do not implement distributed locking,
automatic renewal or immediate revocation.
Vault and client methods
Built-in KeyVault and WorkerVault support both operations. WorkerVault proves inside its worker.
The witness contains
snapshot, scope, message and optional snarkArtifacts.
Independent reader
true permits enrollment inspection before minimum size; proving and verification
still enforce minMembers. Omit block to pin a fresh head. Omit scope to read every scope.
check(row, atBlock) verifies one selected record; it does not perform history deduplication.
Use readPosts() for feed acceptance.
A publication includes key, initial owner, creator, envelope, attributes, membership, creation
block, expiry, transaction index, log index and transaction hash. Ciphertext remains encrypted.
Receipts establish ordering; lexical key order is not used. Provider completeness/retention is
required. Budgets are positive safe integers; unavailable or incomplete verification fails closed.
Lower-level helpers
Never trust an arbitrary caller-supplied snapshot in a verifier. Obtain it from the authenticated
admin history.
verifyMembership alone does not enforce earlier-use policy.
Errors
ArkognitoError is exported from arkognito; the other errors are runtime exports of
arkognito/semaphore. See operator handling.