Decompiled, rebuilt by an agent, every variable renamed: a plain file hash no longer matches. Code Origin seals evidence that survives the rewrite, so when a clone appears you can show what it came from and that yours came first.
Every release turned into fingerprints that survive renaming, reformatting and reordering. Only the fingerprints leave your machine, sealed with the date.
Unique names you plant in code, API responses and markup. Copies and AI rebuilds carry them across. Registered and sealed before you plant them.
How much of a suspect copy matches your sealed releases, file by file, the earliest date of each match, and every canary mark found. Sealed, with its own page.
# In CI, on every release (your code never leaves the runner)
curl -sO https://sebbi.pro/code-origin/sebbi_origin.py
SEBBI_KEY=$SEBBI_KEY python3 sebbi_origin.py --repo my-app --release v1.4.0 .
# Canary marks to plant
curl -X POST https://sebbi.pro/x/codeorigin/canary -H "Authorization: Bearer $SEBBI_KEY" -d '{"repo":"my-app","count":5}'
# A suspect clone appears: compare it
curl -X POST https://sebbi.pro/x/codeorigin/compare -H "Authorization: Bearer $SEBBI_KEY" \
-d '{"repo":"my-app","suspect":{"name":"clone/app.js","text":"...the suspect code..."}}'
The fingerprint method is published at /x/codeorigin/spec and is the same code the script runs, so anyone can recompute it. Who owns the copyright is decided on authorship and contracts; Code Origin is the dated evidence that question turns on. 50p per repository per month after 7 days free.