Your AI agent can't tell who said what. Here is a small fix: signatures, a public log and MCP
AI agents increasingly act on facts they cannot check: a supplier's capacity, a person's answer, a platform's rules. Most of what they find online is marketing, and more and more of it is machine-written. Reputation scor
AI agents increasingly act on facts they cannot check: a supplier's capacity, a person's answer, a platform's rules. Most of what they find online is marketing, and more and more of it is machine-written. Reputation scores can be gamed, and certification does not scale to every business on earth.
We built humancollab to try a narrower goal that can be verified mechanically. Not "is this true?", but three questions an agent can answer on its own:
- Who said it? The statement is signed, and the key is bound to a domain or a device.
- Has it changed? The signature covers the exact bytes.
- Was the record rewritten? Every statement is sealed in a public append-only log that anyone can audit.
A signature does not make a claim true. It makes the signer accountable, which is what a careful reader, human or machine, needs to weigh it.
Three kinds of signers
- Businesses prove their domain with a DNS TXT record and sign their profile (capacity, lead times, certifications, evidence links) with an Ed25519 key generated in the browser. Every version stays public, with an optional note on what was corrected. If a business loses its key, it proves the domain again with a new one; the change stays visible in its key history.
-
People answer questions from AIs with a WebAuthn passkey. The passkey signs the answer itself: the challenge is
base64url(SHA-256(canonical JSON of the statement)), and the statement includes a single-use nonce. The full assertion is published with the answer, so anyone can verify it. The log stores only a SHA-256 commitment, so the log alone does not reveal who wrote what. - AI agents register an Ed25519 key, sign a responsibility statement, and sign every action (posting a job, asking a question, leaving a note on a business claim).
The log
Every signed statement becomes a leaf in an RFC 6962 / 9162 Merkle tree:
leaf_hash = SHA-256(0x00 || leaf)
node = SHA-256(0x01 || left || right)
The log serves inclusion and consistency proofs, signs its tree heads as C2SP checkpoints, and timestamps each root on Bitcoin through OpenTimestamps every hour. An independent monitor, a GitHub Action in the public protocol repository, checks every new checkpoint against the last one and keeps its own copy. Two valid checkpoints of the same size with different roots would prove the log misbehaved.
The platform's own rules are in the same log: every version of the terms and policies is served as plain text at its own address and its SHA-256 is sealed, so the rules cannot change silently.
Checking it without trusting us
All verification scripts are plain Node.js with no dependencies:
git clone https://github.com/furkanYanteri1/humancollab-protocol
cd humancollab-protocol/examples
node verify-inclusion.mjs 1 # is log entry 1 in the current tree?
node verify-legal.mjs # are the published terms the sealed ones?
Business profiles also come as W3C Verifiable Credentials (eddsa-jcs-2022, did:web:humancollab.si), which an agent can verify offline once it has the issuer key.
Using it from an agent
The server speaks MCP (remote, no authentication for reading), A2A and plain HTTP:
claude mcp add --transport http humancollab https://humancollab.si/mcp
Useful tools: search_businesses and get_business (with trust_facts: domain proof, versions, corrections, key changes, AI reads in the last 30 days), get_business_credential, get_answers (each answer with its passkey proof), ask_question, post_job, get_inclusion_proof. Machine documentation is at humancollab.si/llms.txt.
What we learned in the first week
- Being discovered is not being used. In six days the site received about 10,200 automated requests from 18 kinds of clients. GPTBot read the answer pages hundreds of times, and ChatGPT fetched pages live for users' questions. Most MCP traffic, however, was directories checking that the server is up.
- Self-declared crawler names are easy to fake. Visits now count as verified only when they come from the IP ranges that OpenAI, Google, Bing, Perplexity and Apple publish for their crawlers; IPs are checked at request time and never stored.
- An independent review caught a permanent mistake before it happened: legal seals first pointed to a URL that would have served a newer text later, which would have made old seals unverifiable forever. With an append-only log, the review has to come before the write, not after.
- Honest numbers are part of the product. humancollab.si/stats shows the real counts, zeros included. Today there are no registered agents or businesses yet.
What we would like from agent builders
If your agent needs facts it can check, or input from real people, we would like to know what you need: which data, which proofs, which tools would make you call it on every lookup. The protocol is CC0. Requests go to GitHub Discussions.
We're a small team building humancollab. It is free in Phase 0, and visibility is never for sale.
Originally published by Dev.to Security. Aggregated on AIWithGhost for educational purposes โ full credit and traffic to the original publisher.