@veraanchor/verifier 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/CONTRIBUTING.md +33 -0
- package/LICENSE +21 -0
- package/NOTICE +4 -0
- package/README.md +263 -2
- package/SECURITY.md +21 -0
- package/dist/cli/commandV1.d.ts +5 -0
- package/dist/cli/commandV1.d.ts.map +1 -0
- package/dist/cli/commandV1.js +440 -0
- package/dist/cli/commandV1.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -0
- package/dist/contracts/verification.d.ts +77 -0
- package/dist/contracts/verification.d.ts.map +1 -0
- package/dist/contracts/verification.js +6 -0
- package/dist/contracts/verification.js.map +1 -0
- package/dist/crypto/sha3.d.ts +15 -0
- package/dist/crypto/sha3.d.ts.map +1 -0
- package/dist/crypto/sha3.js +27 -0
- package/dist/crypto/sha3.js.map +1 -0
- package/dist/crypto/streamSha3.d.ts +26 -0
- package/dist/crypto/streamSha3.d.ts.map +1 -0
- package/dist/crypto/streamSha3.js +52 -0
- package/dist/crypto/streamSha3.js.map +1 -0
- package/dist/hf/hashContractV1.d.ts +48 -0
- package/dist/hf/hashContractV1.d.ts.map +1 -0
- package/dist/hf/hashContractV1.js +185 -0
- package/dist/hf/hashContractV1.js.map +1 -0
- package/dist/index.d.ts +80 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/merkle/membership.d.ts +30 -0
- package/dist/merkle/membership.d.ts.map +1 -0
- package/dist/merkle/membership.js +105 -0
- package/dist/merkle/membership.js.map +1 -0
- package/dist/policy/contractV1.d.ts +37 -0
- package/dist/policy/contractV1.d.ts.map +1 -0
- package/dist/policy/contractV1.js +2 -0
- package/dist/policy/contractV1.js.map +1 -0
- package/dist/policy/evaluateV1.d.ts +24 -0
- package/dist/policy/evaluateV1.d.ts.map +1 -0
- package/dist/policy/evaluateV1.js +320 -0
- package/dist/policy/evaluateV1.js.map +1 -0
- package/dist/profiles/dataset/sourceV1.d.ts +22 -0
- package/dist/profiles/dataset/sourceV1.d.ts.map +1 -0
- package/dist/profiles/dataset/sourceV1.js +73 -0
- package/dist/profiles/dataset/sourceV1.js.map +1 -0
- package/dist/profiles/dataset/v1.d.ts +39 -0
- package/dist/profiles/dataset/v1.d.ts.map +1 -0
- package/dist/profiles/dataset/v1.js +362 -0
- package/dist/profiles/dataset/v1.js.map +1 -0
- package/dist/profiles/execution/contractV1.d.ts +279 -0
- package/dist/profiles/execution/contractV1.d.ts.map +1 -0
- package/dist/profiles/execution/contractV1.js +364 -0
- package/dist/profiles/execution/contractV1.js.map +1 -0
- package/dist/profiles/execution/independentStandardsV1.d.ts +44 -0
- package/dist/profiles/execution/independentStandardsV1.d.ts.map +1 -0
- package/dist/profiles/execution/independentStandardsV1.js +336 -0
- package/dist/profiles/execution/independentStandardsV1.js.map +1 -0
- package/dist/profiles/execution/reasonCodesV1.d.ts +30 -0
- package/dist/profiles/execution/reasonCodesV1.d.ts.map +1 -0
- package/dist/profiles/execution/reasonCodesV1.js +20 -0
- package/dist/profiles/execution/reasonCodesV1.js.map +1 -0
- package/dist/profiles/execution/recomputationV1.d.ts +11 -0
- package/dist/profiles/execution/recomputationV1.d.ts.map +1 -0
- package/dist/profiles/execution/recomputationV1.js +144 -0
- package/dist/profiles/execution/recomputationV1.js.map +1 -0
- package/dist/profiles/execution/rulesV1.d.ts +6 -0
- package/dist/profiles/execution/rulesV1.d.ts.map +1 -0
- package/dist/profiles/execution/rulesV1.js +855 -0
- package/dist/profiles/execution/rulesV1.js.map +1 -0
- package/dist/profiles/execution/standardsPlanV1.d.ts +18 -0
- package/dist/profiles/execution/standardsPlanV1.d.ts.map +1 -0
- package/dist/profiles/execution/standardsPlanV1.js +16 -0
- package/dist/profiles/execution/standardsPlanV1.js.map +1 -0
- package/dist/profiles/execution/verificationV1.d.ts +28 -0
- package/dist/profiles/execution/verificationV1.d.ts.map +1 -0
- package/dist/profiles/execution/verificationV1.js +188 -0
- package/dist/profiles/execution/verificationV1.js.map +1 -0
- package/dist/profiles/ingest/sourceV1.d.ts +36 -0
- package/dist/profiles/ingest/sourceV1.d.ts.map +1 -0
- package/dist/profiles/ingest/sourceV1.js +99 -0
- package/dist/profiles/ingest/sourceV1.js.map +1 -0
- package/dist/profiles/ingest/v1.d.ts +65 -0
- package/dist/profiles/ingest/v1.d.ts.map +1 -0
- package/dist/profiles/ingest/v1.js +477 -0
- package/dist/profiles/ingest/v1.js.map +1 -0
- package/dist/profiles/sourceV1Helpers.d.ts +48 -0
- package/dist/profiles/sourceV1Helpers.d.ts.map +1 -0
- package/dist/profiles/sourceV1Helpers.js +141 -0
- package/dist/profiles/sourceV1Helpers.js.map +1 -0
- package/dist/reports/coreV1.d.ts +7 -0
- package/dist/reports/coreV1.d.ts.map +1 -0
- package/dist/reports/coreV1.js +195 -0
- package/dist/reports/coreV1.js.map +1 -0
- package/dist/reports/portableV1.d.ts +48 -0
- package/dist/reports/portableV1.d.ts.map +1 -0
- package/dist/reports/portableV1.js +279 -0
- package/dist/reports/portableV1.js.map +1 -0
- package/dist/reports/validationV1.d.ts +19 -0
- package/dist/reports/validationV1.d.ts.map +1 -0
- package/dist/reports/validationV1.js +441 -0
- package/dist/reports/validationV1.js.map +1 -0
- package/dist/resolvers/executionMirrorV1.d.ts +15 -0
- package/dist/resolvers/executionMirrorV1.d.ts.map +1 -0
- package/dist/resolvers/executionMirrorV1.js +206 -0
- package/dist/resolvers/executionMirrorV1.js.map +1 -0
- package/dist/resolvers/explorerExecutionV1.d.ts +17 -0
- package/dist/resolvers/explorerExecutionV1.d.ts.map +1 -0
- package/dist/resolvers/explorerExecutionV1.js +61 -0
- package/dist/resolvers/explorerExecutionV1.js.map +1 -0
- package/dist/resolvers/explorerPublicV1.d.ts +37 -0
- package/dist/resolvers/explorerPublicV1.d.ts.map +1 -0
- package/dist/resolvers/explorerPublicV1.js +210 -0
- package/dist/resolvers/explorerPublicV1.js.map +1 -0
- package/dist/resolvers/explorerPublicationV1.d.ts +20 -0
- package/dist/resolvers/explorerPublicationV1.d.ts.map +1 -0
- package/dist/resolvers/explorerPublicationV1.js +195 -0
- package/dist/resolvers/explorerPublicationV1.js.map +1 -0
- package/dist/resolvers/explorerTransportV1.d.ts +17 -0
- package/dist/resolvers/explorerTransportV1.d.ts.map +1 -0
- package/dist/resolvers/explorerTransportV1.js +112 -0
- package/dist/resolvers/explorerTransportV1.js.map +1 -0
- package/dist/resolvers/hcs11MirrorV1.d.ts +49 -0
- package/dist/resolvers/hcs11MirrorV1.d.ts.map +1 -0
- package/dist/resolvers/hcs11MirrorV1.js +293 -0
- package/dist/resolvers/hcs11MirrorV1.js.map +1 -0
- package/dist/resolvers/hcs13MirrorV1.d.ts +35 -0
- package/dist/resolvers/hcs13MirrorV1.d.ts.map +1 -0
- package/dist/resolvers/hcs13MirrorV1.js +72 -0
- package/dist/resolvers/hcs13MirrorV1.js.map +1 -0
- package/dist/resolvers/hcs1MirrorV1.d.ts +28 -0
- package/dist/resolvers/hcs1MirrorV1.d.ts.map +1 -0
- package/dist/resolvers/hcs1MirrorV1.js +220 -0
- package/dist/resolvers/hcs1MirrorV1.js.map +1 -0
- package/dist/resolvers/hcs26MirrorV1.d.ts +67 -0
- package/dist/resolvers/hcs26MirrorV1.d.ts.map +1 -0
- package/dist/resolvers/hcs26MirrorV1.js +218 -0
- package/dist/resolvers/hcs26MirrorV1.js.map +1 -0
- package/dist/resolvers/hcs26RegistryMirrorV1.d.ts +26 -0
- package/dist/resolvers/hcs26RegistryMirrorV1.d.ts.map +1 -0
- package/dist/resolvers/hcs26RegistryMirrorV1.js +200 -0
- package/dist/resolvers/hcs26RegistryMirrorV1.js.map +1 -0
- package/dist/resolvers/hcs2MirrorV1.d.ts +26 -0
- package/dist/resolvers/hcs2MirrorV1.d.ts.map +1 -0
- package/dist/resolvers/hcs2MirrorV1.js +196 -0
- package/dist/resolvers/hcs2MirrorV1.js.map +1 -0
- package/dist/resolvers/hederaMirrorV1.d.ts +22 -0
- package/dist/resolvers/hederaMirrorV1.d.ts.map +1 -0
- package/dist/resolvers/hederaMirrorV1.js +338 -0
- package/dist/resolvers/hederaMirrorV1.js.map +1 -0
- package/dist/standards/hcs/hcs11V1.d.ts +51 -0
- package/dist/standards/hcs/hcs11V1.d.ts.map +1 -0
- package/dist/standards/hcs/hcs11V1.js +289 -0
- package/dist/standards/hcs/hcs11V1.js.map +1 -0
- package/dist/standards/hcs/hcs13V1.d.ts +39 -0
- package/dist/standards/hcs/hcs13V1.d.ts.map +1 -0
- package/dist/standards/hcs/hcs13V1.js +114 -0
- package/dist/standards/hcs/hcs13V1.js.map +1 -0
- package/dist/standards/hcs/hcs14V1.d.ts +35 -0
- package/dist/standards/hcs/hcs14V1.d.ts.map +1 -0
- package/dist/standards/hcs/hcs14V1.js +168 -0
- package/dist/standards/hcs/hcs14V1.js.map +1 -0
- package/dist/standards/hcs/hcs1V1.d.ts +30 -0
- package/dist/standards/hcs/hcs1V1.d.ts.map +1 -0
- package/dist/standards/hcs/hcs1V1.js +140 -0
- package/dist/standards/hcs/hcs1V1.js.map +1 -0
- package/dist/standards/hcs/hcs26V1.d.ts +58 -0
- package/dist/standards/hcs/hcs26V1.d.ts.map +1 -0
- package/dist/standards/hcs/hcs26V1.js +339 -0
- package/dist/standards/hcs/hcs26V1.js.map +1 -0
- package/dist/standards/hcs/hcs2V1.d.ts +36 -0
- package/dist/standards/hcs/hcs2V1.d.ts.map +1 -0
- package/dist/standards/hcs/hcs2V1.js +181 -0
- package/dist/standards/hcs/hcs2V1.js.map +1 -0
- package/dist/standards/hcs/jsonCanonicalV1.d.ts +15 -0
- package/dist/standards/hcs/jsonCanonicalV1.d.ts.map +1 -0
- package/dist/standards/hcs/jsonCanonicalV1.js +160 -0
- package/dist/standards/hcs/jsonCanonicalV1.js.map +1 -0
- package/dist/triangulation/compareV1.d.ts +50 -0
- package/dist/triangulation/compareV1.d.ts.map +1 -0
- package/dist/triangulation/compareV1.js +236 -0
- package/dist/triangulation/compareV1.js.map +1 -0
- package/dist/triangulation/executionPlanV1.d.ts +39 -0
- package/dist/triangulation/executionPlanV1.d.ts.map +1 -0
- package/dist/triangulation/executionPlanV1.js +208 -0
- package/dist/triangulation/executionPlanV1.js.map +1 -0
- package/dist/triangulation/executionPublicV1.d.ts +22 -0
- package/dist/triangulation/executionPublicV1.d.ts.map +1 -0
- package/dist/triangulation/executionPublicV1.js +39 -0
- package/dist/triangulation/executionPublicV1.js.map +1 -0
- package/dist/triangulation/messageObservationV1.d.ts +26 -0
- package/dist/triangulation/messageObservationV1.d.ts.map +1 -0
- package/dist/triangulation/messageObservationV1.js +69 -0
- package/dist/triangulation/messageObservationV1.js.map +1 -0
- package/dist/triangulation/publicV1.d.ts +29 -0
- package/dist/triangulation/publicV1.d.ts.map +1 -0
- package/dist/triangulation/publicV1.js +170 -0
- package/dist/triangulation/publicV1.js.map +1 -0
- package/dist/verification/sourceIntentV1.d.ts +15 -0
- package/dist/verification/sourceIntentV1.d.ts.map +1 -0
- package/dist/verification/sourceIntentV1.js +206 -0
- package/dist/verification/sourceIntentV1.js.map +1 -0
- package/docs/cli-v0.1.md +237 -0
- package/docs/conformance.md +38 -0
- package/docs/threat-model.md +37 -0
- package/docs/verification-semantics.md +65 -0
- package/examples/README.md +35 -0
- package/examples/dataset-offline.mjs +58 -0
- package/examples/dataset-policy.mjs +59 -0
- package/package.json +65 -4
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@veraanchor/verifier` are documented here.
|
|
4
|
+
|
|
5
|
+
## [0.1.0] - 2026-11-03
|
|
6
|
+
|
|
7
|
+
Initial public release.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Deterministic Dataset and Ingest verification, including source, bundle and receipt checks.
|
|
12
|
+
- Explicit public triangulation through Vera Anchor Explorer and Hedera Mirror observations.
|
|
13
|
+
- SAGE execution verification with caller-controlled execution scope.
|
|
14
|
+
- Pinned HCS-1, HCS-2, HCS-11, HCS-13, HCS-14 and HCS-26 verification.
|
|
15
|
+
- HCS-26 canonical manifest verification and integrity verification of manifest-declared HCS-1 files.
|
|
16
|
+
- Canonical portable verification reports and deterministic report validation.
|
|
17
|
+
- Relying-party policy evaluation with `allow`, `review` and `deny` decisions.
|
|
18
|
+
- `vera-anchor` CLI for offline, public, standards, report and policy workflows.
|
|
19
|
+
|
|
20
|
+
### Assurance boundary
|
|
21
|
+
|
|
22
|
+
The v0.1 release provides deterministic integrity verification and supported Mirror corroboration. It does not claim Hedera consensus-signature authentication, DID-controller or publisher-key authentication, historical account ownership, factual truth, or independent cryptographic binding of Explorer-assisted decrypted plaintext to publication ciphertext.
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Contributions that improve correctness, interoperability, security, documentation and developer usability are welcome.
|
|
4
|
+
|
|
5
|
+
Changes to public schemas, commitment algorithms, verification semantics, reason codes, resolver trust boundaries or policy behavior require explicit review because downstream users may rely on their deterministic meaning.
|
|
6
|
+
|
|
7
|
+
## Development checks
|
|
8
|
+
|
|
9
|
+
Before submitting a pull request, run:
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
npm ci
|
|
13
|
+
npm run check
|
|
14
|
+
npm run typecheck
|
|
15
|
+
npm test
|
|
16
|
+
npm run build
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Do not commit credentials, private customer evidence, production configuration, proprietary Vera Anchor service code or other material that is not explicitly authorized for public release.
|
|
20
|
+
|
|
21
|
+
## Verification and cryptographic changes
|
|
22
|
+
|
|
23
|
+
Changes to cryptographic or verification behavior should include:
|
|
24
|
+
|
|
25
|
+
- deterministic positive coverage;
|
|
26
|
+
- at least one relevant tampered or negative case;
|
|
27
|
+
- explicit algorithm and contract versions where applicable;
|
|
28
|
+
- clear authority and trust-boundary semantics;
|
|
29
|
+
- reproducible conformance material when the change affects interoperability.
|
|
30
|
+
|
|
31
|
+
An established historical commitment algorithm must not be changed in place. A behavior change that would alter previously valid commitments requires an explicit new version and migration analysis.
|
|
32
|
+
|
|
33
|
+
Networked resolver changes must preserve caller-controlled network selection, bounded I/O and the rule that untrusted evidence cannot choose resolver authority.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Vera Anchor
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/NOTICE
ADDED
package/README.md
CHANGED
|
@@ -1,3 +1,264 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Vera Anchor Verifier SDK
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`@veraanchor/verifier` is an open-source, read-only verifier for Vera Anchor evidence and supported HCS-backed execution references.
|
|
4
|
+
|
|
5
|
+
The SDK is local-first. Offline workflows recompute commitments from caller-supplied evidence and source material without Vera Anchor credentials. Explicit public workflows can resolve Vera Anchor Explorer records and independently corroborate supported Hedera observations using caller-selected network configuration.
|
|
6
|
+
|
|
7
|
+
The verifier is designed for relying parties that need deterministic verification results they can evaluate under their own acceptance policy.
|
|
8
|
+
|
|
9
|
+
## What it verifies
|
|
10
|
+
|
|
11
|
+
The v0.1 surface includes:
|
|
12
|
+
|
|
13
|
+
- Dataset and Ingest bundle, receipt, source-binding, and commitment recomputation.
|
|
14
|
+
- Public Dataset and Ingest triangulation across local evidence, Vera Anchor Explorer publication records, and Hedera Mirror observations.
|
|
15
|
+
- SAGE execution verification with independently supplied execution scope and expected program and result constraints.
|
|
16
|
+
- Pinned HCS-1, HCS-2, HCS-11, HCS-13, HCS-14, and HCS-26 verification.
|
|
17
|
+
- HCS-26 historical discovery and version resolution, canonical manifest verification, and integrity verification of manifest-declared HCS-1 files.
|
|
18
|
+
- Canonical portable verification reports with deterministic report digests.
|
|
19
|
+
- Explicit relying-party policies that convert verification findings into `allow`, `review`, or `deny` decisions.
|
|
20
|
+
|
|
21
|
+
## Assurance boundaries
|
|
22
|
+
|
|
23
|
+
Verification results are intentionally scoped.
|
|
24
|
+
|
|
25
|
+
A successful integrity check does not establish factual truth, publisher ownership, or code execution. Hedera Mirror observations provide independent corroboration of supported ledger data; they are not authenticated Hedera consensus proofs.
|
|
26
|
+
|
|
27
|
+
v0.1 does not claim DID-controller authentication, historical account ownership, consensus-signature authentication, or independent cryptographic binding between Explorer-assisted decrypted plaintext and its publication ciphertext.
|
|
28
|
+
|
|
29
|
+
Caller-controlled intent is part of the trust boundary. Subject identifiers, expected commitments, Hedera network selection, execution scope, and policy requirements must come from the relying party's trusted context rather than being copied from untrusted evidence.
|
|
30
|
+
|
|
31
|
+
See [Verification semantics](docs/verification-semantics.md) and the [Threat model](docs/threat-model.md) for the precise distinctions used by the SDK.
|
|
32
|
+
|
|
33
|
+
## Installation
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
npm install @veraanchor/verifier
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The package is ESM-only and has no runtime dependencies.
|
|
40
|
+
|
|
41
|
+
Node.js 24 is recommended for the full v0.1 feature set. The supported runtime range is defined by the package metadata.
|
|
42
|
+
|
|
43
|
+
## Library quickstart
|
|
44
|
+
|
|
45
|
+
Verification primitives are available from the package root:
|
|
46
|
+
|
|
47
|
+
```js
|
|
48
|
+
import { verifyDatasetV1Bundle } from "@veraanchor/verifier";
|
|
49
|
+
|
|
50
|
+
const result = verifyDatasetV1Bundle(bundle);
|
|
51
|
+
|
|
52
|
+
if (!result.ok) {
|
|
53
|
+
console.error(result.mismatches);
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Higher-level APIs add independently supplied verification intent, public resolution, HCS standards verification, portable reporting, and policy evaluation.
|
|
58
|
+
|
|
59
|
+
Public workflows perform network I/O only when explicitly selected.
|
|
60
|
+
|
|
61
|
+
## CLI quickstart
|
|
62
|
+
|
|
63
|
+
The package also exposes the `vera-anchor` CLI.
|
|
64
|
+
|
|
65
|
+
After installing the package:
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
npm exec -- vera-anchor --help
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Offline Dataset verification from original local source bytes:
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
npm exec -- vera-anchor verify dataset \
|
|
75
|
+
--bundle bundle.json \
|
|
76
|
+
--sources sources.json \
|
|
77
|
+
--source-root ./source-files \
|
|
78
|
+
--intent intent.json \
|
|
79
|
+
--policy policy.json
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Explicit public verification of a Dataset publication and Hedera Mirror evidence:
|
|
83
|
+
|
|
84
|
+
```sh
|
|
85
|
+
npm exec -- vera-anchor verify dataset \
|
|
86
|
+
--mode public \
|
|
87
|
+
--explorer-url https://explorer.veraanchor.com \
|
|
88
|
+
--bundle bundle.json \
|
|
89
|
+
--sources sources.json \
|
|
90
|
+
--source-root ./source-files \
|
|
91
|
+
--intent public-intent.json \
|
|
92
|
+
--policy public-policy.json
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Offline SAGE execution verification:
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
npm exec -- vera-anchor verify execution \
|
|
99
|
+
--evidence execution.json \
|
|
100
|
+
--intent intent.json \
|
|
101
|
+
--policy policy.json
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Independent HCS standards verification:
|
|
105
|
+
|
|
106
|
+
```sh
|
|
107
|
+
npm exec -- vera-anchor verify standards \
|
|
108
|
+
--evidence execution.json \
|
|
109
|
+
--intent intent.json \
|
|
110
|
+
--policy standards-policy.json
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Portable report validation and policy assessment:
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
npm exec -- vera-anchor report validate \
|
|
117
|
+
--report report.json
|
|
118
|
+
|
|
119
|
+
npm exec -- vera-anchor policy assess \
|
|
120
|
+
--report report.json \
|
|
121
|
+
--policy policy.json
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
The CLI also supports Ingest verification and explicit public execution verification.
|
|
125
|
+
|
|
126
|
+
See the [CLI reference](docs/cli-v0.1.md) for command options, JSON inputs, policy examples, and exit codes.
|
|
127
|
+
|
|
128
|
+
## Verification model
|
|
129
|
+
|
|
130
|
+
The SDK keeps evidence findings, cross-source consistency, and application decisions separate:
|
|
131
|
+
|
|
132
|
+
```text
|
|
133
|
+
source and evidence recomputation
|
|
134
|
+
|
|
|
135
|
+
v
|
|
136
|
+
public record and HCS resolution when requested
|
|
137
|
+
|
|
|
138
|
+
v
|
|
139
|
+
independent Mirror corroboration where supported
|
|
140
|
+
|
|
|
141
|
+
v
|
|
142
|
+
verification findings and observations
|
|
143
|
+
|
|
|
144
|
+
v
|
|
145
|
+
portable verification report
|
|
146
|
+
|
|
|
147
|
+
v
|
|
148
|
+
caller-supplied policy
|
|
149
|
+
|
|
|
150
|
+
v
|
|
151
|
+
allow / review / deny
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Missing evidence and service outages do not become successful checks. Demonstrated contradictions fail. Unsupported operations remain explicit.
|
|
155
|
+
|
|
156
|
+
The verifier never silently changes Hedera networks or selects a latest execution result when an exact result is required.
|
|
157
|
+
|
|
158
|
+
## Offline and public verification
|
|
159
|
+
|
|
160
|
+
Offline verification performs no resolver network requests. It operates only on caller-supplied evidence, source material, verification intent, and policy.
|
|
161
|
+
|
|
162
|
+
Public workflows are explicit. Resolver origins are controlled by the caller rather than by untrusted evidence. Supported resolvers use bounded requests, reject redirects, and do not silently fall back to another Hedera network.
|
|
163
|
+
|
|
164
|
+
Vera Anchor Explorer publication resolution and Hedera Mirror corroboration are distinct observations. An original HCS anchor is not interpreted as a public publication receipt.
|
|
165
|
+
|
|
166
|
+
## HCS standards verification
|
|
167
|
+
|
|
168
|
+
The v0.1 standards surface supports pinned verification behavior for:
|
|
169
|
+
|
|
170
|
+
- HCS-1 content integrity and bounded file reconstruction.
|
|
171
|
+
- HCS-2 historical registry entries.
|
|
172
|
+
- HCS-11 AI-agent profile integrity and supported reference relationships.
|
|
173
|
+
- HCS-13 schema registration and canonical schema integrity.
|
|
174
|
+
- HCS-14 DID-backed UAID structural binding.
|
|
175
|
+
- HCS-26 historical discovery and version registration, canonical skill manifests, and manifest-declared HCS-1 file integrity.
|
|
176
|
+
|
|
177
|
+
Standards registration establishes only the supported properties of the observed records. It does not establish that associated software executed, that a publisher currently controls a key, or that the underlying claims are factually true.
|
|
178
|
+
|
|
179
|
+
## SAGE execution verification
|
|
180
|
+
|
|
181
|
+
The execution verification surface supports deterministic verification of supported SAGE evidence using independently supplied intent.
|
|
182
|
+
|
|
183
|
+
Public execution workflows can additionally resolve the selected execution record through Vera Anchor Explorer and corroborate supported Hedera observations.
|
|
184
|
+
|
|
185
|
+
Independent standards verification resolves supported HCS references separately from Explorer-based public execution triangulation. Successful public triangulation does not implicitly complete HCS standards verification, and successful HCS standards resolution does not independently prove that the referenced software executed.
|
|
186
|
+
|
|
187
|
+
## Portable reports
|
|
188
|
+
|
|
189
|
+
The SDK can produce `va.portable-verification-report.v1` reports containing deterministic, digest-bound verification results and supported context.
|
|
190
|
+
|
|
191
|
+
Validating a saved report checks its structure and internal digests. It does not recompute the original evidence or authenticate the report's origin.
|
|
192
|
+
|
|
193
|
+
Accordingly, a saved report cannot promote itself into a fresh SDK-computed `allow` decision. Decisions requiring verification of the underlying evidence should be produced by rerunning the appropriate workflow with independently supplied intent and policy.
|
|
194
|
+
|
|
195
|
+
## Policy decisions
|
|
196
|
+
|
|
197
|
+
Policy evaluation keeps application acceptance separate from verification mechanics:
|
|
198
|
+
|
|
199
|
+
- `allow` means the requirements selected by the relying party were satisfied.
|
|
200
|
+
- `deny` means a required condition was contradicted or the policy requires denial.
|
|
201
|
+
- `review` means the evidence remains unresolved under a policy that delegates unresolved cases for review.
|
|
202
|
+
|
|
203
|
+
Verification intent and policy must be supplied independently by the relying party. Untrusted evidence cannot define its own sufficient acceptance threshold.
|
|
204
|
+
|
|
205
|
+
The current public assurance dimension is `mirror_corroboration`. It must not be interpreted as consensus-signature, account-control, publisher-key, or DID-controller authentication.
|
|
206
|
+
|
|
207
|
+
## Conformance
|
|
208
|
+
|
|
209
|
+
The verifier is exercised against deterministic fixtures and live public observations covering supported Dataset, Ingest, SAGE execution, HCS standards, Explorer, Hedera Mirror, network-scope, portable-report, and policy workflows.
|
|
210
|
+
|
|
211
|
+
Live conformance depends on external public services. Service unavailability is not converted into successful verification.
|
|
212
|
+
|
|
213
|
+
See [Conformance](docs/conformance.md) for the current coverage and reproducibility requirements.
|
|
214
|
+
|
|
215
|
+
## Documentation
|
|
216
|
+
|
|
217
|
+
- [CLI reference](docs/cli-v0.1.md)
|
|
218
|
+
- [Verification semantics](docs/verification-semantics.md)
|
|
219
|
+
- [Threat model](docs/threat-model.md)
|
|
220
|
+
- [Conformance](docs/conformance.md)
|
|
221
|
+
- [Security policy](SECURITY.md)
|
|
222
|
+
- [Contributing](CONTRIBUTING.md)
|
|
223
|
+
|
|
224
|
+
## Development
|
|
225
|
+
|
|
226
|
+
Install the locked development dependencies:
|
|
227
|
+
|
|
228
|
+
```sh
|
|
229
|
+
npm ci
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Run the repository qualification checks:
|
|
233
|
+
|
|
234
|
+
```sh
|
|
235
|
+
npm run check
|
|
236
|
+
npm run typecheck
|
|
237
|
+
npm test
|
|
238
|
+
npm run build
|
|
239
|
+
npm pack --dry-run --json
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
`npm run format` modifies files and is intended for local formatting work.
|
|
243
|
+
|
|
244
|
+
Release qualification additionally includes package-content inspection, clean external-consumer installation, CLI and library smoke tests, and live conformance checks.
|
|
245
|
+
|
|
246
|
+
## Security
|
|
247
|
+
|
|
248
|
+
Treat all evidence, resolver responses, source material, and references as hostile input.
|
|
249
|
+
|
|
250
|
+
Do not include credentials, private tenant evidence, customer data, or undisclosed vulnerabilities in public issues.
|
|
251
|
+
|
|
252
|
+
See [SECURITY.md](SECURITY.md) for vulnerability reporting guidance.
|
|
253
|
+
|
|
254
|
+
## Contributing
|
|
255
|
+
|
|
256
|
+
Changes to public schemas, commitment algorithms, verification semantics, reason codes, resolver trust boundaries, or policy behavior require careful review because downstream applications may rely on their deterministic meaning.
|
|
257
|
+
|
|
258
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development and contribution requirements.
|
|
259
|
+
|
|
260
|
+
## License
|
|
261
|
+
|
|
262
|
+
Licensed under the MIT License.
|
|
263
|
+
|
|
264
|
+
See [LICENSE](LICENSE) and [NOTICE](NOTICE).
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported versions
|
|
4
|
+
|
|
5
|
+
Security fixes are provided for the latest published release line of `@veraanchor/verifier`. Users should upgrade to the latest available patch release before reporting a security issue that may already have been corrected.
|
|
6
|
+
|
|
7
|
+
Pre-release branches, unpublished commits and local development builds are not supported release artifacts.
|
|
8
|
+
|
|
9
|
+
## Reporting a vulnerability
|
|
10
|
+
|
|
11
|
+
Do not open a public issue containing exploit details, credentials, private evidence, customer data or an undisclosed vulnerability.
|
|
12
|
+
|
|
13
|
+
Use GitHub private vulnerability reporting for this repository when available. If private reporting is unavailable, contact Vera Anchor through an established, verified organizational channel and provide only the minimum information needed to establish a private reporting path.
|
|
14
|
+
|
|
15
|
+
Public GitHub issues are appropriate for non-sensitive defects, documentation problems and feature requests that do not disclose security-sensitive information.
|
|
16
|
+
|
|
17
|
+
## Security scope
|
|
18
|
+
|
|
19
|
+
The verifier processes untrusted evidence and, in explicitly selected public workflows, untrusted network responses. Security reports involving parser boundaries, resource exhaustion, path handling, resolver origin controls, redirect handling, network-scope enforcement, commitment verification, policy bypass or incorrect verification outcomes are in scope.
|
|
20
|
+
|
|
21
|
+
A successful integrity or Mirror-corroboration result is not a claim of factual truth, publisher ownership, DID-controller authentication or Hedera consensus-signature authentication. See [docs/verification-semantics.md](docs/verification-semantics.md) for the supported assurance model.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
type Emitter = (line: string) => void;
|
|
2
|
+
/** CLI adapter only. Never accepts a caller flag claiming a report was SDK-verified. */
|
|
3
|
+
export declare function runVerifierCliV1(argv: readonly string[], emit: Emitter): Promise<number>;
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=commandV1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandV1.d.ts","sourceRoot":"","sources":["../../src/cli/commandV1.ts"],"names":[],"mappings":"AAmCA,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAqStC,wFAAwF;AACxF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA6G9F"}
|