# Publish bytes, not promises
[Content hub](/en/ai/content)
- type: article
- published_at: 2026-08-14
- tags: artifact, digest, publishing
Why ai_stp verifies an archive before confirmation and keeps one immutable payload for every X.Y version.
## Content
Metadata can describe an artifact, but it cannot replace it. ai_stp accepts the archive bytes first, verifies them, and only then allows the publication to become public.

## Upload is a verification step
The server reads the archive within a strict size limit, rejects unsafe structure, calculates its digest and compares it with the publication plan. Only matching bytes enter immutable object storage.
## Confirmation depends on storage
Confirmation checks that the planned object still exists and has the expected size and digest. A database row alone is insufficient: public metadata cannot outrun the bytes it promises.
## One X.Y, one payload
Once a version is published, another archive cannot claim the same X.Y identity. Consumers download the exact verified bytes and can compare the returned digest without trusting a mutable filename or description.