Skip to main content

Overview

The seal tool creates immutable blockchain attestations for git artifacts. It’s the universal sealing mechanism for all code-related proofs.

Parameters

project
string
required
Project ID as configured in SESHAT.
type
string
required
Type of artifact to seal.
TypeDescription
commitSpecific git commit
prMerged pull request
tagGit tag (version)
releaseGitHub/GitLab release
ref
string
required
Reference to the artifact.
TypeRef FormatExample
commitSHAabc1234
prPR number42
tagTag namev1.0.0
releaseRelease tagv1.0.0

Response

{
  "project": "my-project",
  "type": "pr",
  "ref": "42",
  "commit": "abc1234567890",
  "tree_hash": "sha512:def456...",
  "fingerprint": "sha512:789abc...",
  "eas_uid": "0x1234567890abcdef...",
  "tx_hash": "0xabcdef1234567890...",
  "timestamp": "2026-01-16T10:30:00Z",
  "metadata": {
    "title": "Add new feature",
    "author": "julien",
    "merged_at": "2026-01-16T10:00:00Z"
  }
}

Seal Types

Commit

Seal a specific commit. Use sparingly - prefer PRs for development flow.
Seal commit "abc1234" for project "my-project"
Commits are rarely sealed individually. Most workflows use PRs or tags.

Pull Request

Seal a merged PR with full metadata. Most common for development.
Seal PR 42 for project "my-project"
The PR must be merged. Attempting to seal an open PR will fail.
The attestation includes:
  • Merge commit SHA
  • Tree hash at merge point
  • PR title and description
  • Author and merger info
  • Merge timestamp

Tag

Seal a version tag. Use for milestones and releases.
Seal tag "v1.0.0" for project "my-project"
Tags represent stable points in your codebase. Sealing a tag proves:
  • Exact code state at that version
  • Timestamp of tag creation
  • All content at that point

Release

Seal a GitHub/GitLab release (includes release notes).
Seal release "v1.0.0" for project "my-project"
Releases add:
  • Release notes
  • Associated assets
  • Publication timestamp

Workflow Examples

After Merging a PR

1

Merge the PR

Complete code review and merge on your git host.
2

Seal the PR

Seal PR 42 for project "my-project" as type "pr"
3

Verify

Check the EAS UID on base.easscan.org

Creating a Release

1

Create git tag

git tag v1.0.0
git push origin v1.0.0
2

Seal the tag

Seal tag "v1.0.0" for project "my-project"
3

Generate bundle (optional)

Generate legal bundle for tag "v1.0.0"

Error Handling

ErrorCauseSolution
PR not mergedAttempting to seal open PRWait for merge
Already sealedDuplicate attestationSafe to ignore
Git host not configuredMissing credentialsCheck config
Tag not foundInvalid tag referenceVerify tag exists

Agentic Recommendations

The agent should proactively recommend sealing when:
User says…Agent should…
”I just merged a PR”Suggest sealing it
”Feature is complete”Suggest sealing the PR and/or tagging
”Time for a release”Suggest tag + seal + bundle workflow
”We hit milestone X”Suggest creating and sealing a tag
Best practice: Seal every merged PR for a continuous, verifiable proof chain.