---
title: "Release-Datei per GitHub-Actions-OIDC-Token versiegeln"
method: POST
path: "/v1/seal/github"
tags: ["Seal"]
---

# Release-Datei per GitHub-Actions-OIDC-Token versiegeln

`POST /v1/seal/github`

## Request

- Base URL: `https://doi-api.sendlabs.de` (the document declares no server; this is the origin it was published from)
- URL: `https://doi-api.sendlabs.de/v1/seal/github`
- Auth: none declared

Seals a release file: anchors poe/<sha256> on the Doichain with repository, ref and commit taken from a GitHub Actions OIDC token (Authorization: Bearer <token>, audience 'doichain-seal', job permission id-token: write). No API key is needed, the quota counts per repository and day (DOI_SEAL_PER_REPO_DAY) with a shared daily limit (DOI_SEAL_PER_DAY). Responds 201 with the new anchoring, or 200 if the hash was already anchored (then the existing proof is returned and the file is only recorded in the seal index). Repository, ref, commit and file name become public on the chain. Error texts of this endpoint are English because they appear in workflow logs.

## Request body

- SealCreate
  - `hash` string, required: SHA-256 of the release file, 64 hex characters
  - `filename` string, nullable: File name as published (public on the chain), at most 80 characters
  - `size` integer, nullable: File size in bytes (only stored in the seal index, not on the chain)
  - `note` string, nullable: Optional note, at most 60 characters (public on the chain)

## Response `200`

Hash war schon verankert, bestehender Nachweis

## Other responses

- `201`: Successful Response
- `400`: Eingabe fehlerhaft oder von der Node abgelehnt
- `401`: Schluessel fehlt oder ist ungueltig
- `402`: Node-Wallet ohne Guthaben (nur schreibende Aufrufe)
- `403`: Schluesselstufe reicht nicht oder Methode gesperrt
- `404`: Name, Block, Transaktion oder Pfad nicht vorhanden
- `405`: HTTP-Methode fuer diesen Pfad nicht erlaubt
- `409`: Konflikt: schon registriert, fremder Inhaber, wartende oder abgelehnte Operation
- `413`: Anfrage zu gross (JSON 64 KB, Rohtransaktionen 1 MB, Uploads 50 MB)
- `422`: JSON-Body oder Parameter passen nicht zum Schema
- `423`: Wallet gesperrt
- `429`: Ratenbegrenzung
- `500`: Interner Fehler der API
- `502`: Unerwarteter Fehler der Node oder API-Dienst nicht erreichbar
- `503`: Node oder ElectrumX nicht erreichbar oder noch nicht synchron
- `504`: Zeitueberschreitung

---

[API](https://skmtc.dev/sendlabs/apis/doichain-api.md) · [All operations](https://skmtc.dev/sendlabs/apis/doichain-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sendlabs/apis/doichain-api/revisions/e178cc24ec35?raw)
