Governance and policies
- Security policy set: In place
- Artificial Intelligence Policy: In place
- Exceptions stated in writing: In place
Trust
Effective date: 11 October 2026
What is in place, what is in progress, and what you can ask us for. Open a card for the detail. A row is marked in place only after it has been checked against production.
PulseAI runs no analytics scripts on this website and counts visits only in aggregate from its own server logs. It does not use tracking pixels, does not sell or share personal data, and does not use customer data to train third-party AI models. The only cookies we set are the ones required to keep you signed in to the product application and protect against CSRF.
How we handle cookies → /cookies · Privacy Policy → /legal/privacy
PulseAI's Evidence Vault seals five kinds of governance record into write-once storage as they
happen: an attestation certified, an AI Impact Assessment approved, a shadow-AI application
resolved, an AI policy activated, and the weekly health report. Your administrators can cut
any scope of those records into a signed evidence bundle
to hand an auditor: a ZIP holding manifest.json,
a detached signature manifest.sig, the raw stored
bytes of every record under payloads/, and a summary
PDF. Anyone holding the bundle can check it offline with standard tooling, against the public
keys published on this page. No PulseAI account, no PulseAI software, no network access.
Each hosting jurisdiction is a separate deployment with its own signing key: ECDSA on curve NIST P-256, held in a managed key service whose private half has no export path. The public halves are published here. Accept a key from this page and from nowhere else, including from whoever handed you the bundle: anyone able to substitute the key can also hand you a chain it signs. Confirm the fingerprint before trusting a result, and record it in your own files at onboarding so a later substitution shows up as a mismatch rather than a surprise.
| Hosted in | Public key | SHA-256 of the PEM file | Active from |
|---|---|---|---|
| Canada | evidence-signing-canada-2026-08-22.pem | cea1cfc08e12642cc0a57c9f0a0e3cc08076f3b682a2f812fc328220ca398237 | 2026-08-22 |
| United States | evidence-signing-usa-2026-09-05.pem | 20ef8aa3ad3791ea7227983378262f6fbff0d14c0aeb6d164703a0bd60f1c67a | 2026-09-05 |
| European Union |
Available on request from support@pulseai.now.
| ||
Each key file is named by the date it became active and is never replaced at that address: a rotation adds a new row and a new file, and the retired key stays listed with its retirement date and stays downloadable. Signatures made under a retired key remain verifiable against it forever, because verification is a pure function of the bytes, the signature and the public key, and needs nothing from PulseAI. Evaluation environments use their own keys, supplied with the evaluation materials; they are not listed here.
evidence-signing-canada-2026-08-22.pem (Canada)
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvOyRj7X9clnvfeBJjj+XsJPeJwUx rY/P2D/F840+d++LqIbzKXWtfuUyG2EW751M+ZKR3LEknkzXAUk35OILFA== -----END PUBLIC KEY-----
evidence-signing-usa-2026-09-05.pem (United States)
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEX//FMhKpZbx32MFHDqFJ/BLaxiqj RwLorhI/rhsvL2O8l6Ja2Ji85dqiuwIQlMQ9mdRSssUNXpvbpyEjgB2ukA== -----END PUBLIC KEY-----
Everything below runs from the unzipped bundle plus the key, in bash or zsh, with
openssl, shasum,
jq and the usual diff,
sort and sed.
The commands assume the bundle is unzipped into bundle/ and
the key for your jurisdiction is saved as
pulseai-evidence-signing.pem. Steps 2 and 3 are the
cryptographic checks, and none of the steps needs any PulseAI software.
shasum -a 256 pulseai-evidence-signing.pem
manifest.sig is a small JSON file whose
signature field is the base64 of a DER-encoded ECDSA
signature over SHA-256 of manifest.json's exact bytes.
Decode it, then let openssl do the rest:
jq -r .signature bundle/manifest.sig | base64 -d > manifest.sig.der openssl dgst -sha256 -verify pulseai-evidence-signing.pem -signature manifest.sig.der bundle/manifest.json
Verified OK means PulseAI produced this manifest and
it has not changed since. Verification failure means the
manifest's bytes are not the bytes that were signed, the signature was replaced, or you hold the
wrong key for this jurisdiction or key era. receipts carries a
contentHash of the form
sha256:<hex>. Hash each payload's raw bytes and
compare; never re-serialize before hashing:
jq -r '.receipts[] | "\(.contentHash[7:]) bundle/payloads/\(.evidenceId).json"' bundle/manifest.json | shasum -a 256 -c
A payload that fails here while step 2 passed means the manifest is authentic and that file was altered after signing.recordCount must equal the number of receipts, and
payloads/ must hold exactly the files the manifest names.
A file no receipt names sits outside everything the signature covers; treat it as a finding, not
a packaging quirk:
jq '.recordCount == (.receipts | length)' bundle/manifest.json diff <(jq -r '.receipts[].evidenceId' bundle/manifest.json | sort) <(ls bundle/payloads | sed 's/\.json$//' | sort)
digestChain names the weekly digest links that cover its
records. Ask PulseAI for those digest files and their signature sidecars, verify each against
the same key with the step 2 procedure, and confirm the link covering the manifest's
cutAt carries a
bundleReceipts entry whose
exportId matches the manifest's and whose
sha256 (after its
sha256: prefix) equals
shasum -a 256 of the ZIP itself. This is what turns
"PulseAI signed this manifest" into "PulseAI sealed this disclosure into a signed weekly chain,
where any later change to the record shows up as a link that disagrees with its predecessor".
scope block states the filters the bundle was cut with,
and its unsealedCount states how many records no weekly
digest link has sealed yet. A non-zero count is normal for a bundle cut mid-week, not a defect;
request a bundle cut after the next weekly seal if you need chain coverage for those records.
This page is the complete customer procedure. PulseAI's Evidence Vault verification guide is the
long form: it specifies the wire formats, covers the weekly digest chain in full, and ships a
dependency-free verifier that performs steps 2 to 4 in one command. Both are available to
customers and their auditors from support@pulseai.now,
which is also where to report a verification failure. The openssl signature check and the
per-record hash comparison are exercised against tampered and wrong-key fixtures in PulseAI's
build on every change; the jq, shasum -c and diff lines above were run against a synthetic signed
bundle, including the tampered-payload, extra-file and wrong-key cases, when this page was
written.
Vulnerability disclosure →
Coordinated disclosure, scope, safe harbor.
Privacy Policy →
What we collect, how we use it, your rights.
Subprocessors →
Every third party that touches data.
Cookies →
What we set, what we don't, why no banner.
Terms of Use →
The contract for using the platform.
System status →
Live availability by region, incidents, and maintenance.
Acceptable Use Policy →
What you may and may not do on the platform.
Our Data Processing Agreement is provided on request:
legal@pulseai.now.
security@pulseai.nowprivacy@pulseai.nowlegal@pulseai.nowPulseAI Now Inc. · Trust & Security · Version 1.5 · October 11, 2026