Skip to content

mcevoyinit/tempora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tempora

tem·po·ra — Latin: "times, moments." From the same root as Tempo.

Prove anything existed at a specific time. One command, one cent.

How it works

On Tempo, every TIP-20 stablecoin transfer can carry a 32-byte memo. Tempora uses this: it SHA-256 hashes your file, then sends $0.01 pathUSD to itself with the hash as the memo. A single transaction both pays the fee and records the proof — the payment receipt is the attestation.

Similar patterns exist elsewhere (Bitcoin OP_RETURN, Stellar memos, Solana memo program), so the technique isn't new. What makes it practical here is the combination: sub-cent cost, sub-second finality, stablecoin fees, and a 32-byte memo field that maps exactly to a SHA-256 digest. At these prices, per-document stamping actually makes sense.

CLI

$ tempora stamp README.md
  Stamped:  README.md
  Hash:     ce377a8465e54eeb68554c20dc1e13967f541aeef672e6597a43cdb1ccca7522
  TX:       0x8c8e784e1c2e0cc1378bff0316aa2d8968558de23da7383f82a8f40d2c85a2d7
  Block:    13793169
  Cost:     $0.01 pathUSD
  Proof:    https://explore.tempo.xyz/tx/0x8c8e784e1c2e0cc1378bff0316aa2d8968558de23da7383f82a8f40d2c85a2d7

Verify later:

$ tempora verify README.md
  Verified: README.md
  Hash:     ce377a8465e54eeb68554c20dc1e13967f541aeef672e6597a43cdb1ccca7522
  Stamped:  2026-04-09T03:14:24Z
  Block:    13793169
  Proof:    https://explore.tempo.xyz/tx/0x8c8e784e1c2e0cc1378bff0316aa2d8968558de23da7383f82a8f40d2c85a2d7

Stamp a git commit:

$ tempora stamp --git
  Stamped:  git:a7f3c8d2e1b4
  Hash:     ...

Pipe anything:

$ echo "my secret idea" | tempora stamp -

JSON output for CI/CD:

$ tempora stamp --json document.pdf
{
  "file_hash": "a7f3c8d2...",
  "tx_hash": "0x4a91...",
  "block": 13792001,
  ...
}

Python API

from tempora import stamp, verify, hash_file

# Stamp ($0.01)
file_hash = hash_file("contract.pdf")
record = await stamp(file_hash, key="0x...")
print(record.explorer_url)

# Verify (free)
proof = await verify(file_hash)
if proof:
    print(f"Exists since block {proof.block}")

Setup

pip install tempora
export TEMPORA_KEY=0x<your-private-key>

Defaults to Tempo mainnet. For testnet:

export TEMPORA_RPC=https://rpc.moderato.tempo.xyz

Live API

Hosted instance running on Tempo mainnet:

# Stamp text
curl -X POST "https://wrestling-diameter-demographic-centered.trycloudflare.com/stamp?text=hello"

# Verify a hash
curl "https://wrestling-diameter-demographic-centered.trycloudflare.com/verify/<hash>"

# List all stamps
curl "https://wrestling-diameter-demographic-centered.trycloudflare.com/stamps"

Or self-host:

pip install tempora uvicorn fastapi python-multipart
export TEMPORA_KEY=0x<your-key>
uvicorn tempora.web:app --port 8401

Cost

$0.01 per stamp. Verification is free (reads the chain). A $1 wallet stamps 100 documents.

Related

  • Salvo — atomic swap+pay
  • Maestro — zero-gas agent orchestrator
  • Levy — FastAPI payment middleware
  • Parley — tiered MPP pricing

License

MIT

About

Prove anything existed at a specific time. One command, one cent on Tempo.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages