Skip to content
Open menuClose menu

The system of record for software change controls

Every code and process change, sealed as audit evidence.

Toevan checks the code in every pull request, records how each change was reviewed, approved and merged, and catches every change to the rules around it. Each fact is signed and chained as evidence your auditor verifies offline with standard openssl, without Toevan software or an account.

  • Data processed in the EU
  • DPA available
  • Verifiable with Sigstore, in-toto and cosign

Works with

  • GitHub
  • Kosli
  • Sigstore
  • Slack
  • Jira
  • Linear

Maps to

  • SOC 2
  • ISO/IEC 27001
  • PCI DSS v4.0
  • NIST 800-53 Moderate
  • HIPAA
  • GDPR
  • DORA
Example Toevan overview for the Northwind organisation: 96.4% constraint pass rate, 3 open violations, 14 gate runs today with 2 blocked, and 4,812 evidence records. Below are findings that need attention, the latest gate runs and pass rates for four repositories.
toevan/evidence · payments-apiexample data
Record rec_5b81d4eprev rec_b7e21f0
Gate  14 rules passedRecomputed
Approvals  2 reviewers, not the authorReported + sealed
Branch rules  required review onReported + sealed
Vulnerabilities  none high or critical (OSV.dev)Recomputed
  1. Checks every changeBlocks the merge on a broken rule, with the file and line.
  2. Records how it got inEvery review, approval and merge, as it happens on GitHub.
  3. Catches control changesRules switched off, admin bypasses and direct pushes.
  4. Seals it as evidenceSigned and chained, so your auditor verifies it offline.

Why now

Rules files ask the model to behave. Toevan verifies it did.

AI assistants now write a large share of the code regulated teams merge, faster than any review process was designed for. A CLAUDE.md or .cursorrules file is a request. A merge gate is a control, and the record it writes is the evidence.

10,000+new security findings a month from AI-generated code across Fortune 50 enterprises by June 2025, ten times the December 2024 level.
Source: Apiiro, “4x Velocity, 10x Vulnerabilities: AI Coding Assistants Are Shipping More Risks” (2025)

How it works

One gate, one record. Every view an audit needs.

Toevan runs on every pull request, on main after each merge, and on every change to your review rules. What it decides, it records, and what it records, your team and your auditors can see.

§1

Gate

Blocks the change and says exactly why.

Every pull request is checked as a GitHub check against the blueprints you adopt. Same change, same rule, same result. No model decides a verdict.

  • 28 deterministic constraint types across compliance, security and architecture
  • Comments on the line, and posts its verdict as a review
  • Exceptions requested from the pull request, with a reason and an expiry
  • Suggested fixes, checked by build and blast-radius validation
toevan/gate · 3 checks failedSecurity Essentials 2.14.0 · Clean Architecture 1.4.0 · example data
SecurityLive Stripe key assigned to STRIPE_SECRETpayments/refund.ts:42 · secret-detection-high✕ Blocked
ComplianceCustomer email reaches a logging sinkaccounts/signup.go:118 · sensitive-unsafe-log-flow✕ Blocked
ArchitectureRequest handler calls the database directlyapi/handlers/refunds.go:57 · layer-dependency-handlers-to-db✕ Blocked

§2

Record

Records how every change got in.

Each merge, approval and change to your review rules, captured from GitHub as it happens.

  • Independent approval on the final commit, and the rules in force at merge
  • Review rules switched off, admin bypasses and direct pushes, as events
13:41 merge #1936 · 2 approvalsRecorded
14:02 required review switched offGap opened
14:09 direct push 7c1e0a2No PR
14:21 required review restoredRecorded

§3

Seal

Seals every decision as evidence.

Every gate run, merge and rule change writes a signed, append-only record pinned to the commit and the rule-set version in force.

  • Hash-chained and signed, with optional anchoring in Sigstore Rekor
  • CSV and PDF exports per framework, repository and period
  • Kept at least three years (5, 7 or 10 on Enterprise), with a copy in your own repository
rec_b7e21f0sealed 13:41
rec_5b81d4eVerified OK
envelopeattestations/<head_sha>/rec_5b81d4e.dsse.jsonsignatureECDSA P-256 · keyid 8c1f…e0a2branchtoevan/evidence

Controls

Shows control status the way an audit asks for it.

Track every repository against the frameworks you’re audited for, see exceptions before they expire, and give external auditors a read-only role. Views for engineers, internal audit and external auditors.

Constraint pass rate

96.4%27 / 28 rules with no open finding on main

Open violations

30 critical · 1 high · 2 medium

Gate runs today

1412 passed · 2 blocked

Evidence records

4,812last 90 days · append-only · signed
Controls · northwind · Q3 2026example data
RepositorySOC 2DORAOpen exceptionsLast verified
payments-api6 evidenced1 partial117aa93d
ledger-service6 evidenced1 partial091ac03e
web-checkout1 failing1 partial04d2e8b1
partner-gateway6 evidenced1 partial2e07f5a2
Expires in 7 daysException for known_vulnerability on payments-api, 31 Oct

§4

Verify

Your auditor verifies it offline, with standard openssl.

No Toevan software and no account: open standards and stock tools. Three steps, and the answer comes back in plain words. If anything in a record was changed after it was sealed, the check says so.

  1. Get a copy of the evidence

    Evidence lives on a branch in your client’s own repository, next to the code it describes. An ordinary folder of records.

  2. Confirm the key

    Check that the key’s fingerprint matches the key id Toevan publishes at api.toevan.com/v1/public/evidence/keys and prints in every report. One command prints it.

  3. Check a record from your sample

    Run the check on any record. It answers two questions: was the signed statement changed, and is this record the one that was signed?

rec_5b81d4eone record from a sample of 25 · example data
Signature
Verified OK

The statement is exactly what was signed with the published key.

Record
record matches the statement

This record file is the one the signature covers. You can rely on what it says.

For auditors

Built for the audit, and honest about its scope.

Every control of every framework in the catalog, mapped: where Toevan gives code evidence, where it gives process evidence, and the much larger part that stays with your organisation.

What your auditor receives

  • A report per framework. For any period and repository: a PDF for the file, plus a CSV of the records for testing.
  • The full evidence trail. Every code result, waiver, merge, approval and rule change, each pinned to its commit and the rule-set version in force.
  • Control changes as they happen. Review rules switched off, admin bypasses and direct pushes, sealed when they happen.
  • Read-only access. An Auditor role that reads the evidence, exports and reports, and sees no repositories and no code.
  • Instructions that need no account. Verification runs offline with open tools against a published key.

How each fact is labelled

Every fact carries one of six labels, so your auditor knows how far to rely on it.

RecomputedToevan computed it from code or git history.
Reported + sealedGitHub reported it; signed at the event.
Declared + sealedYour organisation declared it; signed with its history.
Not sealedA Toevan record outside the ledger, such as a waiver.
ConsumedTaken from GitHub’s deployment and release records, linked by commit or digest.
Not capturedNo reliable source. Toevan does not infer it.
CC8.1Change managementSOC 2 test sheet · example data
Population412commits that reached the default branch in the period
Sample25drawn by the auditor
Signatures25 / 25✓ Verified OK
25 of 412 commits, each matched to a record sealed when the change happened and checked against the published key
Attribute testedHow it was obtained
Merged through a pull request that passed the gateRecomputed
Approved by someone other than the authorRecomputed
Approvals on the final commitReported + sealed
Population: every commit that reached the default branch, listed from git history and matched to a recordRecomputed
Exceptions · 2In the record
No PRdirect push to main · 7c1e0a2
Gaprequired review off · 14:02 to 14:21

Both were sealed when they happened, so nothing falls between snapshots. Recount the population yourself with git and the report’s population CSV.

Toevan supplies the evidence. Your auditor forms the opinion.Open the sample reportOpen the control maps

Integrations

Complete on its own. Connected when you need it.

Toevan needs only your GitHub repositories to gate every change, record how it got in, seal the evidence and give auditors what they ask for. Keep Semgrep, Snyk or CodeQL for depth.

  • Pull request gate and exceptions with expiry
  • Evidence sealed per change, and process evidence per merge
  • Audit dashboards and a README status badge
  • Runs on your GitHub repositories
Where the evidence can go
Your auditorNo accountVerifies any record offline, without a Toevan account
KosliLiveSigned gate verdicts pushed into your Kosli trails
Sigstore RekorOptionalAnchoring of record hashes, in the public log or your own instance
Vanta, Drata or your registerAttach reportsReports attached per control and period
Slack, Jira, Linear and webhooksLiveGate results in Slack and your webhooks; tasks from Jira and Linear

Pricing

Start free. Talk to us when the audit is real.

Every plan seals the same evidence and verifies the same way. Plans differ in scope, reports, workflows and where Toevan runs.

  • Free

    For a first repository and a first look at the gate.

    • Repositories: up to 2 in an organization, 1 in a personal account
    • Seats: up to 3 in an organization
    • Sealed evidence trail with export
    • Pull request gate and architecture canvas
    • Official blueprint marketplace
    • AI fixes: 10 a month
  • Enterprise

    More than a hundred repositories, or custom terms.

    • Repositories: more than 100
    • Self-hosted or private-VPC deployment, on request
    • Evidence retention: 3, 5, 7 or 10 years, your choice
    • Priority support
    • Volume terms

There are no list prices yet. Team is priced per governed repository and billed yearly, and we agree it with you.

Questions we hear first

Straight answers on scope, determinism and where your code goes.

Something we haven’t answered?

Scope and fit

3 questions
Do we have to replace Vanta, Kosli or our scanners?

No. Toevan works on its own for the code layer, and alongside the tools you have. Keep your scanners for depth; Toevan’s own checks give every change a baseline and decide the merge against your rules. Signed verdicts flow into Kosli as attestations, and Toevan’s reports attach to controls in Vanta, Drata or your own register.

What Toevan adds is a sealed record computed from the change itself: what every change does, and since v1.4.0 how it got from commit to production, signed when it happened and checkable offline with standard openssl.

Does a green report mean we’re compliant?

No, and every report says so. Toevan gives evidence for the controls that live in code, and since v1.4.0 in your change process. It never certifies a control or expresses an opinion on whether controls are designed or operating effectively. Access reviews, incident response, resilience testing, third-party risk and governance stay with your process, and every report lists exactly what it doesn’t cover.

Do you only support GitHub?

GitHub today, through a GitHub App with check runs and pull request annotations. Since v1.4.0 it also reads merges, reviews, rule changes and production deployments as they happen. GitLab and Bitbucket are on the roadmap. If one of them is your blocker, tell us and it moves up.

How it runs

3 questions
Is the enforcement really deterministic?

Yes. Blueprint constraints are evaluated against the dependency graph with no model in the loop: same input, same verdict, every run. AI is used to suggest fixes and explain violations, never to decide whether code complies.

Does our code leave our boundary?

Analysis, blueprint evaluation, the pull request gate and evidence signing run on Toevan’s own EU infrastructure, and your source code is not sent outside it. Dependency checks send package names and versions, except those Toevan identifies as private, to public services such as OSV.dev. Optional AI features can send code-derived context to an EU provider or to your own provider key. Rekor anchoring, built in and opt-in per organisation, publishes record hashes only. Self-hosting is available on request. The full statement is on the Security page.

What happens when the gate is wrong?

You request an exception with a justification, scope and duration. The right owner reviews it, it expires on schedule, and the exception itself becomes evidence.

Bring one repository and your next audit.

Pilots start in Q1 2027 with a small group of design partners: regulated teams shipping AI-assisted code, from Series B to enterprise. The first audit cycle is the proof.

  • One repository, one framework
  • Evidence from the first pull request
  • Verifiable without a Toevan account