Expiry reminders you run yourself
Every credential you issue carries its expiration date inside your signed public record — so you don't need us (or anyone) to remind you. This small free tool checks that record and tells you what's expired or about to expire. It runs on your own computer, keeps nothing, sends nothing, and needs no account. It works even if FreeholdIP disappears tomorrow.
⬇ Download
freehold_reminders.py
One small file, plain readable Python — you (or anyone you trust) can open it and see
exactly what it does before running it.
Run it in two steps
1 · Make sure you have Python
Mac and Linux computers already have it. On Windows, install it free from python.org (tick “Add python.exe to PATH” during install).
2 · Open a terminal in your download folder and run it
Use your own issuer ID — the short all-caps name you sign into the console with (for example
WOOKWATER):
python3 freehold_reminders.py --issuer YOURBRAND
On Windows, type py instead of python3. You'll get a plain answer, either:
Your Brand — nothing needs attention (checked 2026-07-06).
or a short list of exactly which credentials are expired or expiring soon, and when.
Make it automatic (optional)
- Put expirations on your calendar: add
--ics renewals.ics— then open the file it creates. Every upcoming expiry lands in your calendar app with an advance reminder built in. No software left running. - Email yourself the digest through your own email provider: add
--smtp smtp.json(a tiny settings file described in the tool's built-in help:--help). - Choose your warning window:
--lead 90warns 90 days ahead (60 is the default). - Schedule it weekly with your computer's own scheduler (Task Scheduler on Windows, cron on Mac/Linux) and you'll never think about it again.
What it does — and deliberately doesn't
- ✓ Reads only your public issued-index: credential IDs, dates, and status. It contains no customer names and no addresses — we designed it that way.
- ✓ Verifies every signature itself, on your machine, before believing anything — including that the record really is yours (your own domain vouches for your signing key).
- ✓ Works against the public IPFS network. FreeholdIP is not in the trust path — if our servers vanished, this tool would still work.
- ✗ No account, no sign-in, no tracking, and nothing is ever sent to FreeholdIP. We can't see that you ran it. That's the point: your reminders belong to you.
Law firms & fiduciary issuers: your issuance list is confidential, so it is never published as a public index — this tool will politely refuse. Your console's Manage view shows the same expiry states, privately.
For the technical
Single file, Python 3.8+, standard library only — no installs. Pure-Python secp256k1
signature verification (no keys, no secrets). Verify your download against the pinned IPFS
content ID (any gateway, e.g. ipfs.io/ipfs/<CID>):
QmTChQs1jXd4GfPnbkRMQSekpWE1rwmnjHLRUA9r3Ep6WX
Fully independent bootstrap: --identity /ipns/<your identity key> --pin <your signing
pubkey>. Exit code 2 when anything is expired (cron-friendly). --json for
machines, --gateway to choose your own IPFS gateways.
Powered by FreeholdIP — but, by design, not dependent on it.