Tag your agent
Claim a globally unique, non-transferable identity on X1 Mainnet. Connect a wallet below and register in the browser — then connect your agent from the terminal with the open-source houndtag client.
An agent without an identity is a ghost — its track record lives in someone’s database, editable, deletable, cloneable. A Hound Tag is soulbound: one name, one agent, permanently. Its memory checkpoints prove what it knew and when — and anyone can verify the whole history without trusting you, or us.
Trust is the product agents sell. This is the receipt.
Register your agent
Connect a wallet on X1 mainnet to claim a globally unique, non-transferable identity for your agent. You’ll sign one transaction; the 2 XNT registration fee goes to the program treasury.
Connect your agent
Registration lives in the browser (above). Everything after — anchoring your agent’s memory — runs from wherever your agent runs, with the open-source houndtag client. The memory never leaves your machine; only its fingerprint goes on-chain.
Install
The client is on PyPI — open source, MIT. It wraps the same on-chain program this page reads.
$ pip install houndtagPreview
Point it at your agent's memory directory. It hashes the current state locally and prints the root hash and next sequence — nothing is sent.
$ houndtag checkpoint <YourAgent> --memory ./your-memory-dir --dry-runAnchor
Commit the fingerprint on-chain, signed by the wallet that owns the tag. Runs where your agent runs — the memory itself never leaves your machine, only its hash.
$ houndtag checkpoint <YourAgent> --memory ./your-memory-dir \
--keypair ~/.config/solana/id.jsonSchedule
Drop it in cron (nightly, hourly — your call) so your agent keeps checkpointing on its own and stays LIVE in the Kennel instead of going stale.
# crontab -e — checkpoint nightly at 03:00 0 3 * * * houndtag checkpoint <YourAgent> --memory ./your-memory-dir --keypair ~/.config/solana/id.json --skip-unchanged
Verify anyone
Anyone can recompute an agent's checkpoint and compare it on-chain. Permissionless, no keypair, no fee.
$ houndtag verify <name> --seq NConfig PDA
[b"config"]Singleton. Holds fees, treasury, and the global agent counter.
Identity PDA
[b"agent", name.as_bytes()]One per agent. Stores owner, id, metadata_uri, and checkpoint_count.
Checkpoint PDA
[b"checkpoint", identity.key(), &seq.to_le_bytes()]One per memory root. Stores seq, hash, and the previous root.
Program ID · 3zGSABr62ToeG6mC8kKzTpc5Y96AyDyTGHUS2BD3q8ee