A RECOMMENDATION, WITHOUT A GATEKEEPER
Endorse once.
Let each community decide.
Give a collaborator a recommendation they can carry.
Publish it yourself. Withdraw it when things change.
One record. Independent decisions.
A little trust goes a long way.
A transaction needs checking
Check your wallet history before sending anything again. The public operation is saved in this browser.
Recommend a collaborator
A contribution relationship, signed by you.
REVIEW BEFORE SIGNING
Signing records your recommendation. Publishing requires a separate wallet transaction.
Carry a recommendation
Retrieve the original bytes directly from ENS.
Retrieval preserves a public record. The CLI or GitHub Action checks its current validity against the receiving repository’s policy.
Withdraw an endorsement
Keep the history. Stop the recommendation from being accepted.
Your own publishing space
Control the ENS name and the keys that can update it.
Start with your own Sepolia ENS name from the ENS app ↗, or create an issuer-owned subname in .
Create a dedicated resolver
Deploy the official ENSv2 resolver with your wallet as its administrator.
Connect the name
Optional: a helper wallet for the endorsement key
The key grant covers devouch.vouch on every name served by this resolver. Use a dedicated resolver. Your wallet can still withdraw directly.
Your recommendations, in one place.
Save publication names. Check each relationship when you need it.
Read-only · No wallet needed · Stored in this browser
Add a direct ENS name or a subname to get started. Names stay here after you close this page.
Each refresh runs the full signature, ENS history, and snapshot checks. Names are checked one at a time. Time left is measured at the last check; refresh to update it. A successful read saves its publication position so a later withdrawal can still be checked. Agent permissions are checked separately on request.
Remove from list only changes this browser’s list. To withdraw a published recommendation, use Withdraw and review the exact endorsement with your wallet.
human verification: not included
Your repository. Your decision.
Choose recommendations to accept, then review two configuration files.
Read-only · No wallet or GitHub sign-in needed.
Review the pinned Action in the adoption guide ↗ before installing it. This SHA fixes the code that will run in your repository.
One name per line, up to eight. A valid signature is evidence of a recommendation; decide separately whether you know and trust its issuer.
Check the publication names, then select the issuers you independently trust.
Review before adopting
These files allow any valid endorsement matching the selected issuers, scopes, and resolvers. They do not restrict acceptance to the subjects displayed above. One matching endorsement is required.
.devouch/policy.json
.github/workflows/devouch.yml
- Review and commit both files through your repository’s normal process.
- A contributor includes their unchanged
.devouch/vouches/github-ID.jsonin a PR. - Read Devouch endorsement report in Actions. A green report means the check completed; read evidence and policy separately.
- Rerun to refresh expiry or withdrawal. For
unavailable, check RPC and GitHub access; never infer acceptance.
human verification: not included
One name for each relationship
Keep endorsements independent. Give agents only the access you choose.
For multiple endorsements, create vouches.your-name.eth first, then a contributor’s numeric ID below it. Each final name gets its own resolver and can be withdrawn separately.
Give the parent a child registry
If a registry is already connected, skip these three transactions. Existing resolver records stay in place. The connected wallet must own the parent.
Register a subname
Owned by the connected issuer wallet. Expiry must be within the parent’s lease.
Use the new name
For a final contributor or agent name, create its independent publishing record below.
Enter both fields to include an agent identity. Example GitHub ID: 287365775 for masusanou.
AGENTS AS NAMESPACES
A profile with bounded permissions
Each agent uses its own resolver. Profile access does not allow editing endorsements, identity, ownership, or sibling names. The controller keeps the name and can revoke access.
human verification: not included
READ A RECOMMENDATION
One endorsement.
Two independent decisions.
Check live ENS evidence. See what changes when a repository trusts its issuer.
Read-only · No wallet, signature, or transaction needed.
Reads the signature, complete supported ENS history, and a fresh Sepolia snapshot.
Is this endorsement valid at the checked block?
Signature
- Published at
- Subject
- Scope
- Expires (UTC)
- Sepolia block
Issuer address and verification details
- Issuer address
- Checked (UTC)
- Block hash
- Resolver
- ENS hierarchy
Who does each repository trust?
These are illustrative policies in your browser. Both allow this endorsement’s scope and resolver; edit the trusted issuers to compare. No GitHub repository policy is loaded or changed.
Repository A
not_evaluatedStarts by trusting this issuer.
Verify an endorsement first.
Repository B
not_evaluatedStarts with no trusted issuer. Try adding one.
Verify an endorsement first.
Policy edits reuse the checked evidence. Verify again to check for withdrawal or expiry at a new block.
Checks the PR’s current commits and a fresh Sepolia snapshot. Public GitHub repositories only.
Is the PR author’s endorsement valid at the checked block?
Signature
- Subject
- Published at
- Scope
- Expires (UTC)
Issuer address
- Sepolia block
- Checked (UTC)
Does this repository accept it?
Read from the PR’s base commit. These are the repository’s actual rules.
View the repository policy
View policy at this commit ↗Checked commits and verification details
- Base SHA
- Head SHA
- Policy digest
- Block hash
- ENS hierarchy
This is a fresh read of the commits shown above. GitHub’s earlier checks remain unchanged. Acceptance is not a merge approval.
human verification: not included
An endorsement records a recommendation. It does not prove human identity, code quality, or authority to act.
Your portable record
Receiving repository setup
The maintainer must independently choose to trust this issuer. This file is a policy example, not an approval.
Place the endorsement in . Use the pinned Action workflow from the adoption guide.
Connection settings Diagnose or change RPC
A provider must support historical state and logs. Connections and past checks are never treated as proof of current validity. RPC URLs are not saved in browser storage.
For example, masusanou.vouches.geeknees.eth. Leave empty to check connection capabilities only.
Diagnostics test the URL above. Your active connection changes only when you choose Use this connection.