OpenStela

← Blog

Is OpenTimestamps enough, or do I need a registry?

Often, yes. If what you need is a dated, checkable record that a file existed, and you're the one who will present that evidence later, OpenTimestamps does the job for free. It needs no account, your file never leaves your computer, and it works on any file type. A registry like OpenStela earns its place in a narrower set of cases: when someone else has to check the record without you sending them files, when you want your name and your account of how you made the work frozen alongside the date, or when the work is going to be bound to a character or sold.

Both approaches answer the same question: did this exact file exist by this date? Neither one decides who made it or who owns it. This post walks through the do-it-yourself steps first, because if they cover you, you can stop there. Then it sets out where the two differ, with the limits of each. For the wider field (notaries, government registration, emailing yourself), see Five ways to prove a file existed on a date.

What OpenTimestamps actually does

OpenTimestamps is an open standard for timestamping on the Bitcoin blockchain. Your file is reduced to a hash, a fixed-length fingerprint. Public calendar servers collect many hashes, combine them, and write the result into Bitcoin. You get back a small .ots proof file that links your file's hash to a Bitcoin block.

A few facts from the project's own pages, checked on 2026-10-22:

  • The calendar servers "are free to use and they don't require any registration or api key." They run on donations.
  • On the website, "the hash is calculated on your browser preserving your privacy." The file itself isn't sent anywhere. Only the digest is.
  • The client README says it "takes a few hours for the timestamp to get confirmed by the Bitcoin blockchain," because the servers don't write one transaction per timestamp.
  • The project states its scope plainly: "A timestamp proves that some data existed prior to some point in time."

That last line is the whole promise, and it's exactly what a timestamp should claim.

Doing it yourself, step by step

About ten minutes of work, plus a few hours' wait you don't have to watch.

  1. Freeze the file first. Export the final version you want to date. Don't open and re-save it afterward. One changed byte gives a different hash.
  2. Stamp it in the browser. Go to opentimestamps.org and drop the file on the stamp area. The proof file downloads automatically, named after your file with .ots on the end.
  3. Or stamp it from the command line. If you have Python 3, run pip3 install opentimestamps-client, then ots stamp yourfile.wav. This creates yourfile.wav.ots next to the original. It can stamp many files in one command. One caution, from the README's privacy section: files stamped together share most of their proof, which is strong evidence that the same person stamped them. Stamp separately if you don't want two projects linked.
  4. Come back after a few hours and upgrade the proof. A fresh .ots file is incomplete. It still relies on a calendar server to supply the path to the Bitcoin block. Run ots upgrade yourfile.wav.ots once the timestamp is confirmed. That writes the path into the proof itself, so verifying no longer depends on that calendar staying online. The README is direct about this dependency: old timestamps stay verifiable "provided that the relevant calendar data is available." Upgrading is how you stop depending on that.
  5. Write a short note and stamp that too. The .ots file records nothing about what the file is. So write a plain text file: the title, the date you made it, the tools you used, and what you did yourself (the lyrics, the edit, the selection from 200 generations). Stamp the note the same way. Now the context has a date as well.
  6. Store the pair in two places. Keep the original file and its .ots side by side, in your working folder and in a backup. Lose either one and there is nothing to verify.
  7. Verify when you need to. ots verify yourfile.wav.ots checks the proof against Bitcoin. Per the README, verifying from the command line needs a local Bitcoin Core node, though a pruned node is fine. If you don't run a node, the OpenTimestamps website accepts an .ots file for verification in the browser.

You now have a date anyone can check with free, open tools, without trusting you or any company.

When the free tool is enough

OpenTimestamps is the better fit, not just the cheaper one, in these situations:

  • You'll present the evidence yourself. If a dispute comes up, you'll be the one handing over the file, the proof and your notes. Nobody needs to look you up beforehand.
  • The file isn't a song, image or video. A LoRA's .safetensors file, a project file, a layered PSD, a prompt log or a script can all be stamped. OpenStela's upload registration takes audio (mp3, m4a, wav), images (jpg, png, webp) and video (mp4, webm), with size limits per type.
  • The work is unreleased and should stay private. OpenTimestamps never sees the file. On OpenStela, a work you upload is stored on our server, even if you keep its page private.
  • You have a lot of files. Stamping is scriptable and has no daily cap. A registry has limits. OpenStela caps how many works one account can register per day, and uploaded files count against 300 MB of storage.
  • You don't want to depend on any company. OpenTimestamps is a protocol, not a service you sign up for. Once a proof is upgraded, it needs only the file and Bitcoin.

What a registry adds, and what it costs you

What OpenStela adds over a bare timestamp, and the trade-offs.

Other people can check without you. When you register a work, it gets a public page if you choose, and its SHA-256 fingerprint can be pasted into the verify page by anyone. A buyer or a festival can look it up without an .ots file or a Bitcoin node. With OpenTimestamps, the checker needs the original file from you.

The context is part of the record, not a side file. OpenStela builds an authorship record: the file's fingerprint, the name you publish under, the creation date you state, the tools you used, a rights declaration and, if AI was involved, your own description of what you contributed (that field is required for AI works). The record's hash is what goes on chain, so the claims and the file are dated together. Once written, the record is frozen. You can change only the title, a note and whether it's public. The note from step 5 does something similar, but only if you remember to write and keep it.

Works can belong to a character, and move with it. A work can be bound to a registered character. The binding is a second record with its own date. If the character is sold through the platform's deal room, the works bound only to it move to the buyer with their records. A timestamp has no idea what a character is. Where can you sell an AI character? covers that side.

Someone else keeps the batches. Records are batched each night into a Merkle tree, and the 32-byte root is written to Arbitrum One. You don't run an upgrade step or keep track of .ots files.

The costs, stated plainly:

  • You need an account, and for uploaded works, we hold a copy of the file. Links to already-published work (for example a Suno or YouTube page) take almost no storage, but then you're registering a public link, not a private file.
  • You're trusting a company for the convenient layers. The public page and the lookup exist only while OpenStela runs. The protection against that is the Proof Pack. Download it and you hold the record, its Merkle proof and the chain transaction, which is enough to recompute everything offline. Once a song is registered, how do you prove it existed that day? shows the recomputation, and the continuity page states what we commit to if the service ends.
  • The contribution text is your own statement. We don't check whether it's true, and we don't judge the work's content.
  • Limits apply. Registering works is free within the storage and daily limits above. Characters are free up to 50 per account. The only fee is on sales: 5% (minimum $15) to the seller when a deal reaches the transfer step. See pricing.

Side by side

OpenTimestampsOpenStela
CostFree (donation-funded calendars)Free to register, within 300 MB storage and a daily cap per account
AccountNoneRequired
Does the file leave your computer?No, only the hashUploads are stored; links aren't
File typesAnyAudio, image, video uploads; links to published work
ChainBitcoinArbitrum One
Time to anchoredA few hours, then you upgrade the proofFingerprint at once, anchored in that night's batch
What's datedThe file's hashA record: hash, name, stated date, tools, contribution, rights
Who can checkAnyone with the file and the .otsAnyone, via the public page or fingerprint lookup; offline from the Proof Pack
If the operator disappearsUpgraded proofs keep workingProof Pack keeps working; public pages don't

Checked 2026-10-22 against opentimestamps.org, the client README and OpenStela's own code and pricing.

Using both

They don't compete. Both use SHA-256 of the file, so the same file has the same fingerprint in each. (Run ots info on a proof and the first line shows the file's SHA-256.) A sensible split:

  1. Stamp every draft and working file with OpenTimestamps as you go. It's free and private, and it builds a dated trail of how the work developed.
  2. When you release a work, register the final file on OpenStela, with your contribution written into the record and a page you can link.
  3. Keep the .ots proofs anyway. If the earliest draft carries an earlier date than the registry record, that sequence is itself evidence. The background is in How do I prove a file existed on a certain date?.

Why does any of this matter? In Taiwan, copyright exists from the moment a work is finished, with no registration. The Intellectual Property Office's copyright Q&A (October 2021) adds that you carry the burden of proving your rights, and recommends keeping drafts, backups, edit histories and discussions. In the US, the Copyright Office's general FAQ says copyright exists from creation, but you'll have to register before suing over a US work. No timestamp, free or not, does that for you. For what a record can and can't show, read What a character ID proves, and what it doesn't.

This is general information, not legal advice.

← 部落格

OpenTimestamps 免費就能蓋時間戳,還需要登錄平台嗎?

很多時候,夠了。如果你要的是「這個檔案最晚在某天就存在」的可查驗紀錄,而且日後拿出證據的人就是你自己,OpenTimestamps 免費就能做到:不用註冊帳號,檔案不會離開你的電腦,什麼格式都能蓋。登錄平台(例如 OpenStela)真正派得上用場的情況比較窄:別人要在你不傳檔案給他的前提下自己查;你希望署名、創作過程說明和日期一起凍結成一張紀錄;或是這件作品之後要綁到角色上、要跟著角色一起賣。

先講清楚:兩種做法回答的是同一個問題,也就是「這一份一模一樣的檔案,最晚在這天以前就存在了嗎?」。兩者都不能判定作品是誰做的、歸誰所有。這篇先把自己動手的步驟寫完整,因為如果這樣就夠用,你可以直接停在那裡;後面再並排比較兩者的差別和各自的限制。公證、政府登記、寄信給自己等其他方法,請看〈要證明檔案在某一天就存在,五種方法哪個好?〉。

OpenTimestamps 到底做了什麼

OpenTimestamps 是一套開放的區塊鏈時間戳標準,寫進的是比特幣鏈。你的檔案會先被算成一個雜湊值,也就是固定長度的「指紋」。公開的日曆伺服器(calendar server)把很多人的雜湊收在一起、合併之後寫進比特幣,你拿回一個很小的 .ots 證明檔,它把你的檔案指紋和某個比特幣區塊連起來。

以下幾點都出自官方頁面,查證日 2026-10-22:

  • 日曆伺服器免費使用,不需要註冊,也不需要 API 金鑰,靠捐款維持。
  • 在官網上操作時,雜湊是在你的瀏覽器裡算的,官網原話是為了保護你的隱私。檔案本身不會送出去,送出去的只有指紋。
  • 依官方命令列客戶端的說明文件,時間戳要「幾個小時」才會被比特幣鏈確認,因為伺服器不是每個時間戳各發一筆交易,而是批次處理。
  • 官方對自己的範圍講得很白:時間戳證明的是「某些資料在某個時間點之前就已存在」。

最後那一句就是它全部的承諾。這不是缺點,時間戳本來就只該宣稱這件事。

自己動手:一步一步來

實際動手大約十分鐘,中間要等幾個小時,但不用盯著。

  1. 先把檔案定稿。 匯出你要留日期的最終版本,之後不要再打開另存。很多軟體存檔時會改寫中繼資料,只要差一個位元組,指紋就完全不同。
  2. 在瀏覽器裡蓋章。 打開 opentimestamps.org,把檔案拖進 stamp 區。證明檔會自動下載,檔名是原檔名後面加上 .ots。
  3. 或者用命令列。 電腦上有 Python 3 的話,先執行 pip3 install opentimestamps-client,再執行 ots stamp 你的檔案.wav,旁邊就會多出 你的檔案.wav.ots。客戶端可以一次蓋一整個資料夾,處理大量草稿很方便。但說明文件的隱私段落提醒過:同一個指令一起蓋的檔案,證明內容大部分相同,等於留下「這些是同一個人蓋的」強力證據。自己的草稿通常無所謂;如果你不想讓兩個案子被連在一起,就分開蓋。
  4. 過幾個小時回來 upgrade。 剛拿到的 .ots 是不完整的,查驗時還要靠日曆伺服器補上通往比特幣區塊的路徑。等比特幣確認之後執行 ots upgrade 你的檔案.wav.ots,就會把這段路徑寫進證明檔本身,之後查驗不必再仰賴那台伺服器還在線上。說明文件也直說了:舊的時間戳要能查驗,前提是相關的日曆資料還拿得到。upgrade 就是把這個依賴拿掉的方法。
  5. 寫一份簡短說明,也一起蓋章。 .ots 檔裡沒有任何關於「這是什麼」的資訊。所以另外寫一個純文字檔:作品名稱、完成日期、用了哪些工具、哪些部分是你自己做的(歌詞是你寫的、剪輯是你剪的、從兩百張生成圖裡挑了這四張)。這份說明也照同樣方式蓋章,脈絡就也有日期了。
  6. 成對保存、放兩個地方。 原檔和它的 .ots 放在一起,工作資料夾一份、備份一份。任何一個不見了,就沒有東西可以查。
  7. 需要時再查驗。 執行 ots verify 你的檔案.wav.ots 會拿證明去對比特幣鏈。依說明文件,用命令列查驗需要本機跑一個 Bitcoin Core 節點(修剪過的節點也可以)。不想跑節點的話,OpenTimestamps 官網也能直接把 .ots 檔拖進去,在瀏覽器裡查驗。

這樣就完成了。你手上有一個任何人都能用免費、開放的工具查的日期,不需要相信你,也不需要相信任何一家公司。

什麼情況免費工具就夠了

下面這些情況,OpenTimestamps 不只是比較便宜,而是比較合適:

  • 證據會由你自己拿出來。 如果發生爭議,交出檔案、證明檔和說明的人就是你,事前沒有人需要先查到你。
  • 檔案不是歌、圖或影片。 LoRA 的 .safetensors、專案檔、分層 PSD、提示詞紀錄、腳本,全都能蓋。OpenStela 的上傳登記只收音訊(mp3、m4a、wav)、圖片(jpg、png、webp)和影片(mp4、webm),每種格式都有大小上限。
  • 作品還沒發表,想保持私密。 OpenTimestamps 從頭到尾看不到檔案。在 OpenStela 上傳的作品,即使你把頁面設成不公開,檔案仍會存在我們的伺服器上。
  • 檔案很多。 蓋章可以寫成腳本、沒有每日上限。登錄平台有限制:OpenStela 每個帳號每天能登記的作品件數有上限,上傳的檔案也要算進 300 MB 的空間。
  • 你不想依賴任何一家公司。 OpenTimestamps 是一套協定,不是要註冊的服務。證明檔 upgrade 之後,只需要原檔和比特幣鏈。

如果你要的只是替一個指紋蓋上日期,讀到這裡就可以停了,你已經有了。

登錄平台多給什麼、你要付出什麼

以下是 OpenStela 做了而單純時間戳沒有做的事,每一項都附上對應的代價。

別人不必透過你就能查。 你在作品頁登記一件作品後,可以選擇給它一個公開頁;它的 SHA-256 指紋,任何人都能貼到查驗頁查。買家、影展、平台客服都能自己查,不必跟你要 .ots 檔,也不必跑比特幣節點。用 OpenTimestamps 的話,查驗的人一定要先從你手上拿到原檔。

脈絡寫在紀錄裡,不是另一個檔案。 OpenStela 會組一張著作紀錄:檔案指紋、你公開發表用的名義(筆名也可以)、你聲明的創作日期、用了哪些工具、權利聲明;作品有用到 AI 的話,還要寫下你自己做了什麼(AI 作品這一欄必填)。上鏈的是這張紀錄的雜湊,所以你的聲明和檔案是一起被蓋上日期的。紀錄一經寫入就凍結,之後能改的只有標題、備註和是否公開。上面第 5 步那份說明檔做的事類似,但要靠你自己記得寫、記得跟原檔放在一起。

作品可以屬於某個角色,也能跟著角色移轉。 作品可以綁到已登記的角色上,綁定是第二張紀錄,有自己的日期。如果這隻角色透過平台的交易室賣出,只綁在這隻角色上的作品會連同紀錄一起移到買方。時間戳不知道「角色」是什麼。這部分見〈AI 角色可以在哪裡賣?〉。

批次由別人保管。 紀錄每晚和其他紀錄疊成一棵 Merkle 樹,32 bytes 的樹根寫上 Arbitrum One。你不用自己做 upgrade,也不用管一堆 .ots 檔。

代價也老實列出來:

  • 要有帳號;上傳型作品,我們會保存一份檔案。 已經公開發表的作品(例如街聲、Suno、YouTube 的頁面)可以用連結登記,幾乎不佔空間;但那樣登記的是一個公開連結,不是一份私密檔案。
  • 方便的那幾層,要信任一家公司。 公開頁和指紋查詢只在 OpenStela 營運時存在。對應的保險是 Proof Pack:下載之後,紀錄本體、Merkle 證明路徑和鏈上交易都在你手上,可以完全離線重算。重算步驟見〈一首歌登記之後,怎麼證明它那天就存在〉;萬一服務結束我們承諾做哪些事,寫在存續頁。
  • 貢獻說明是你自己的聲明。 平台不查證內容是否屬實,也不評斷作品本身。
  • 有額度限制。 在上述空間與每日件數限制內,登記作品免費;角色每個帳號 50 隻以內免費。唯一的收費在成交:交易走到移轉那一步時,向賣方收 5%(最低 15 美元)。詳見價格。

並排比較

OpenTimestampsOpenStela
費用免費(日曆伺服器靠捐款)登記免費,每個帳號有 300 MB 空間與每日件數上限
帳號不需要需要
檔案會離開你的電腦嗎?不會,只送出指紋上傳型會保存;連結型不會
檔案格式任何格式音訊、圖片、影片上傳;已發表作品的連結
寫進哪條鏈比特幣Arbitrum One
多久上鏈幾個小時,之後自己 upgrade指紋立即產生,當晚批次上鏈
被蓋上日期的是什麼檔案指紋一張紀錄:指紋、名義、聲明日期、工具、貢獻說明、權利聲明
誰能查任何同時拿到原檔與 .ots 的人任何人:公開頁或指紋查詢;也能用 Proof Pack 離線重算
營運方不在了upgrade 過的證明照樣能查Proof Pack 照樣能查;公開頁不會留著

查證日 2026-10-22,依據 opentimestamps.org、官方客戶端說明文件,以及 OpenStela 自己的程式與價格頁。

兩個一起用

它們不是對手。兩邊用的都是檔案的 SHA-256,同一個檔案在兩邊的指紋相同(對證明檔執行 ots info,第一行就是檔案的 SHA-256)。合理的分工是:

  1. 創作過程中,每一版草稿、每個工作檔都用 OpenTimestamps 蓋章。免費、私密,累積下來就是一條有日期的創作軌跡。
  2. 作品發表時,把最終檔登記到 OpenStela,貢獻說明寫進紀錄,也多一個能分享的頁面。
  3. .ots 證明檔照樣留著。最早那版草稿的日期如果早於登錄紀錄,這個先後順序本身就是證據。背景說明見〈怎麼證明一個檔案在某一天就已經存在?〉。

為什麼要在意這些?在台灣,著作完成時就享有著作權,不需要登記。經濟部智慧財產局的《民眾經常諮詢著作權案例 Q&A》(110 年 10 月,即 2021 年 10 月出版)第一題說明了這點,同時提醒:著作權是私權,權利人對權利存在要自負舉證責任,建議保留草稿、備份、增刪紀錄、討論紀錄等資料,作為日後發生爭議時的依據。作品如果也在美國流通,美國著作權局一般問答寫道:著作權在創作完成時就存在,登記原則上是自願的,但要就美國著作提起侵權訴訟,就必須先登記。這件事,不管免費或付費的時間戳都無法替你完成。一份紀錄能說明什麼、不能說明什麼,見〈角色編號證明什麼,不證明什麼〉。

本文為一般資訊,不是個案法律意見。

Questions常見問題

Is an OpenTimestamps proof weaker because it's free?OpenTimestamps 免費,證明力是不是比較弱?

No. The proof's strength comes from Bitcoin and from the hash, not from what you paid. What it lacks is context. It doesn't record a title, a name or what you contributed, so keep a dated note alongside it.

不是。證明的強度來自比特幣鏈和雜湊,跟你付了多少錢無關。它缺的是脈絡:不記錄作品名稱、你的名字,也不記錄你做了什麼,所以要另外留一份有日期的說明。

Do I need to run a Bitcoin node?我一定要自己跑比特幣節點嗎?

Not to stamp. To verify from the command line, the client needs a local Bitcoin Core node, and a pruned one is fine. Otherwise, the OpenTimestamps website can verify an .ots file in your browser.

蓋章不用。用命令列查驗時,客戶端需要本機的 Bitcoin Core 節點,修剪過的節點也可以。不想跑節點的話,OpenTimestamps 官網可以直接在瀏覽器裡查驗 .ots 檔。

What happens if I forget to upgrade the proof?忘了 upgrade 會怎樣?

It still points to a calendar server, which can supply the missing path when you verify. That works as long as the calendar's data is available. Upgrading writes the path into your file, so it's worth doing once, a few hours after stamping.

證明檔還是指向日曆伺服器,查驗時由伺服器補上缺的那段路徑;只要那台伺服器的資料還在,就查得到。upgrade 是把路徑寫進你自己的檔案,蓋章幾個小時後做一次就好,很值得。

Can I register a file on OpenStela that I already stamped?已經用 OpenTimestamps 蓋過的檔案,還能登記到 OpenStela 嗎?

Yes. The fingerprint is the file's SHA-256 in both systems, so an unchanged file matches. The OpenStela record gets its own date, and your earlier .ots proof still shows the earlier one.

可以。兩邊的指紋都是檔案的 SHA-256,檔案沒改過就會對得上。OpenStela 的紀錄有自己的日期,你先前的 .ots 證明則仍然顯示較早的那個日期。