Safeguard
Supply Chain•

Which attestation predicate type do you need? A decision table

Provenance, SBOM, vulnerability scan, test result or VSA: match the in-toto predicate type to the question you need an attestation to answer.

Safeguard Security Team
4 min read

Pick the predicate type by the question you need answered. Use SLSA Provenance for how an artifact was built, SPDX or CycloneDX for what is inside it, a vulnerability scan predicate for known issues, a test result predicate for what was tested, and a verification summary for a policy decision.

What a predicate type is

An in-toto Statement binds a claim to a subject artifact and names the claim type with a predicate type URI. The in-toto spec says the predicate carries arbitrary metadata about the subject with a type specific schema. Consumers must ignore unrecognised fields unless the predicate spec says otherwise.

Because the type tells a verifier how to read the predicate, always check the type string before trusting what is inside.

The vetted predicates

The in-toto repository lists these vetted predicates:

PredicatePurpose
SLSA ProvenanceHow artifacts were produced
SLSA Verification Summary (VSA)A SLSA verification decision about an artifact
SPDX2 and SPDX3SPDX bill of materials
CycloneDXBill of materials
VULNSSharing vulnerability scan results
Test ResultResults of any test type
Simple Verification ResultEvidence the artifact was checked against policies
SCAI ReportEvidence based claims about artifact attributes or behaviour
ReleaseAn artifact included in a release version
Runtime TracesRuntime traces of supply chain operations
LinkSupports migration from in-toto 0.9
ReferenceDocuments relevant to a resource

Matching question to type

Question from a buyer or auditorPredicate to attach
Where and how was this built?SLSA Provenance
What components are inside?SPDX or CycloneDX
Were known vulnerabilities checked before release?VULNS
Did the release pass its tests?Test Result
Did this meet our policy?VSA or Simple Verification Result
Which version is this artifact part of?Release

Practical advice

  1. Start with provenance and an SBOM. Those two answer the most common buyer requests.
  2. Add scan or test attestations only if a consumer will act on them.
  3. Make sure each attestation names the same subject digest, otherwise they describe different things.
  4. Keep the type URIs in a short allow list on the verifier side.
  5. Sign everything the same way so verification stays uniform.

A word of caution

A scan attestation is a snapshot. New advisories appear after release, so a clean scan at build time does not mean a clean result next month. Pair a point in time attestation with ongoing monitoring.

Where Safeguard fits

Safeguard produces and works with SBOMs and does dependency scanning, and its continuous scanning keeps results fresh after release. See the demo below for an inventory view.

Try it yourself

Click through it at your own pace, or open it full screen.

Open the dependency inventory and note how components are listed, the same content an SBOM predicate would carry.

Quick check

Can one artifact have several attestations?

Yes. A Bundle groups multiple attestations, and each one has its own predicate type, all pointing at the same subject digest.

Is a vulnerability scan attestation proof of safety?

No. It records results at one moment. New advisories can change the answer later.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.