Logo
verification

Why should anyone trust a tunnel record?

Short answer

Because we say which of two things was actually established, and sign it. A machine can prove you control the channels your record points at — that is free and automatic. A person can establish who you are and that the service is real — that takes two employees and is on paid plans. Every record states its level, what that level does not prove, and when it expires. The claim is cryptographically signed and appears in an append-only public log.

Three independent ways to refuse the claim. Verify the signature against our published keys, read the expiry date, and confirm the status is the newest entry in the public log. None of the three asks you to take our word for the other two.
checkable, not claimable

Any site can publish structured data saying it has been verified. The markup is a text file, and nothing written in it has to be true.

Ours is signed, dated, and carries what it does not prove inside the signature — so you can establish that we are wrong without asking us.

Two levels, and we always say which one you have

Anyone can generate structured data claiming anything. What a machine can prove, a machine proves — free, on every plan. What only a person can establish, a person establishes.

Automated checks

Free, on every plan

Proves

You control the channels your record points people at. A DNS record or a file on your domain; a one-time token in your public social bio; a code to your listed inbox. Two proofs minimum, and we re-check them on a schedule rather than taking July's answer as still true in December.

Does not prove

Who you are, or that you deliver what you list. No person has looked at your business. The signed record says so in as many words, so an assistant reading it cannot mistake this for the level below.

Verified by a person

Pro, Business and Custom

Proves

Everything above, plus your legal identity and the person behind it, and that the service is real — checked against off-site evidence by a tunnel employee and approved by a second one. Neither can do both halves.

Does not prove

That you are good at what you do. This is a check on who you are, never an endorsement of quality, and we will not sell it as one.

What a person checks

Who you say you are — company registration and the person behind it

That you control the channels you claim: domain, social accounts, phone

That the service is real — we look at the off-site evidence, not just your own site

What comes out

A cryptographically signed record, so it cannot be forged or quietly edited

An entry in a public transparency log with the date and what was checked

An expiry — verification is a snapshot, and a stale one should not count

What the badge does not do yet

No AI assistant reads it. There is no cross-vendor trust registry today, so ChatGPT and Gemini have nowhere to look up whether a business has been verified by anyone — us included. Any vendor telling you their badge makes an assistant trust you more is describing something that does not exist.

What it is today: a signed, publicly auditable record that a human, an agent or a customer can check, and that our own knowledge base and MCP endpoint enforce — a verified record is marked as such everywhere we publish it. If a registry does emerge, you are already in it.

the claim

The whole claim, including the part that weakens it

This is the response a buyer, a developer or a competitor gets when they ask what a business is verified to. There is no version of it that leaves the limitations out.

GEThttps://api.tunnelpowered.com/api/v1/merchants/{slug}/verificationexample
{
  "protocol": "tunnel-trust/1.2",
  "status": "verified_automated",
  "badge": "verifiedAutomated",
  "level": "automated",
  "limitations": [
    "identity_not_verified",
    "service_reality_not_verified",
    "no_human_review"
  ],
  "attestation": {
    "jws": "eyJhbGciOiJFZERTQSIsImtpZCI6…",
    "jwks": "https://api.tunnelpowered.com/.well-known/jwks.json"
  },
  "expires_at": "2027-02-11T09:12:07Z"
}

An excerpt; the signature itself is truncated here. The three amber values sit inside the signed payload rather than next to it — remove them and the signature stops verifying.

level
Which of two different things was established. “human” means a person checked identity and that the service is real; “automated” means machines proved only that the business controls the channels it cites. null is a real answer, and it is the common one.
limitations
What this level does not prove, in the payload rather than beside it. A page can quietly drop a footnote; a signature cannot lose three strings and still verify.
jwks
Our public keys. The attestation is a compact JWS signed with EdDSA — fetch the keys, check it offline with any JOSE library, and a record that fails to verify is not one of ours.
expires_at
Verification is a snapshot of one day. Past this date the attestation is not a claim about the business today, and nothing should treat it as one.

How to check a record yourself

A badge you have to take our word for is a logo. These are the steps a buyer, a developer or a rival can run without asking us anything.

[01]

Read the level, not the badge

Every record carries a level field. Two values mean something different, and a record with no level has not been verified at all.

[02]

Read the limitations

The signed payload contains a list of what this particular level does not establish. It is inside the signature, not printed next to it, so it cannot be dropped in transit and still verify.

[03]

Verify the signature

The attestation is a compact JWS. Fetch our public keys from the JWKS endpoint and check it yourself. A record that does not verify is not one of ours.

[04]

Check the expiry

Verification is a snapshot. Every attestation has an expiry date, and an expired one is not a valid claim about today.

[05]

Find it in the transparency log

Status changes are appended to a hash-chained public log. A status that is not the newest entry for that business is not the real status.

When a badge is wrong

The interesting question about a trust system is not how it grants; it is how fast it takes back.

Granting is slow on purpose

A human verification needs one employee to do the work and a different one to approve it. Neither can do both halves, and the system refuses the grant if they are the same person.

Removing is fast on purpose

A single employee can suspend a badge immediately. We would rather wrongly suspend an honest merchant for a day than leave a wrong badge up while two people find time to agree.

Automated proofs are re-checked

A domain changes hands, a social account is sold, a DNS record gets deleted the day after it passed. We re-observe automated proofs on a schedule and suspend automatically when one is demonstrably gone.

A machine can never restore trust

The automated system can take a badge away. Putting one back is a decision only a person can make.

You can report one

Tell us which record and what is wrong with it. Disputes and how we handle them are documented for agents and humans alike.

Questions people ask about this

What is the difference between the two levels?

The automated level proves you control the channels your record points at — a DNS record or a file on your domain, a token in your public social bio, a code sent to your listed inbox. Two of those are required. The human level proves everything above plus your legal identity, the person behind it, and that the service is real, checked against off-site evidence by one tunnel employee and approved by a second. The automated level is free on every plan; the human level is on paid plans.

Is the free badge just a weaker version of the paid one?

It is a different claim, not a smaller one. Proving control of a channel and establishing an identity are two different facts, and mixing them up is exactly the failure this design exists to prevent. The signed record names its level and lists what that level does not establish, so nothing has to be inferred from the presence of a badge.

Can I fake it?

Not without controlling the channels. The automated checks look for a proof you have to publish on the domain, profile or inbox in question; if you cannot publish it, you cannot pass. Two independent proofs are required so that one compromised channel is not enough. The human level additionally requires documents and a second employee’s approval.

How long does verification last?

Every attestation carries an expiry date, and an expired one is not a valid claim. Automated proofs are re-observed on a schedule before then, and a badge is suspended automatically if a proof turns out to be gone.

What is the transparency log?

An append-only, hash-chained record of every verification status change: what changed, when, and why. It is public. If a status claim is not the newest entry in the log for that business, it is not the real status.

What stops you from simply marking everyone verified?

Nothing technical. We issue the attestations, so we could. What is available to you instead is the ability to check: every status change is appended to a hash-chained public log, so a status that is not the newest entry for that business is not the real status, and a log that has been edited after the fact stops chaining. Separately, a human grant needs one employee to do the work and a different one to approve it, and the system refuses the grant when they are the same person. None of this asks you to believe we are honest. It makes dishonesty leave a mark you can find without us.

free scan

Find out what AI says about your business

We ask four assistants what they say about your business, and send you the answers they gave — including the parts that are wrong. Free, and yours to keep.

Free AI visibility scan (no credit card required)
Setup in under 5 minutes
See the actual answers each assistant gave, per query
Free tier with no time limit — the trial is the product

Get your free AI visibility scan

By submitting, you agree to our Terms of Service and Privacy Policy