GitHub Proof Guide

Prove you control a GitHub account by adding your AnchorID to your profile README.


What is this? GitHub proof lets you prove you control a GitHub account by adding your AnchorID to your profile README.

Important: This is a GitHub account control proof. It does not prove legal identity.


Setup

1. Create your profile README (if you don't have one)

GitHub allows you to create a special repository that displays on your profile page.

Repository name: Your GitHub username (exactly)

Example: If your username is johndoe, create a repository named johndoe

File: README.md in the root of that repository

Visibility: Must be public

2. Add your AnchorID to the README

Add the following line anywhere in your README.md:

Canonical identity: https://anchorid.net/resolve/<your-uuid>

Example:

Canonical identity: https://anchorid.net/resolve/4ff7ed97-b78f-4ae6-9011-5af714ee241c

Placement suggestions:

3. Commit and push

Make sure your changes are committed and pushed to the main branch on GitHub.

4. Verify in AnchorID

In AnchorID:

  1. Go to /login and authenticate
  2. Scroll to "Identity Claims" section
  3. Click "Add New Claim"
  4. Choose GitHub proof type
  5. Enter your GitHub profile URL (https://github.com/username)
  6. Click "Verify"

What the verification checks

When you verify a GitHub claim, AnchorID will:

  1. Extract your username from the URL you provide
  2. Fetch the raw README from: https://raw.githubusercontent.com/<username>/<username>/main/README.md
  3. Check that the file contains your resolver URL: https://anchorid.net/resolve/<uuid>
  4. Mark the claim as verified if the URL is found

The URL match is case-sensitive and must be exact.


Accepted formats

Full profile URL:

https://github.com/username

Profile URL with trailing slash:

https://github.com/username/

Both will work. AnchorID normalizes URLs before processing.


Repository requirements

Note: If your default branch is master instead of main, the verification may fail. Update your default branch to main.


Troubleshooting

"Profile README not found"

"Proof not found"

Username case sensitivity

GitHub usernames are case-insensitive, but AnchorID normalizes them to lowercase. Use lowercase in your claim URL to avoid confusion.


Example README

Here's a minimal example of a profile README with AnchorID:

# Hi, I'm John Doe ๐Ÿ‘‹

I'm a software engineer interested in distributed systems and identity.

## Projects

- [My Blog](https://example.com)
- [Cool Project](https://github.com/johndoe/cool-project)

---

Canonical identity: https://anchorid.net/resolve/4ff7ed97-b78f-4ae6-9011-5af714ee241c

What GitHub proof is good for

GitHub proof is valuable for:


Combining with other proofs

For strongest verification, combine GitHub proof with:

Website proof:

DNS proof:


Security considerations


Privacy note

Your profile README is public. If you prefer privacy:


API usage

Create a GitHub claim:

curl -X POST https://anchorid.net/claim \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "uuid": "YOUR-UUID",
    "type": "github",
    "url": "https://github.com/username"
  }'

Verify the claim:

curl -X POST https://anchorid.net/claim/verify \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "uuid": "YOUR-UUID",
    "id": "github:username"
  }'

Comparison with other proofs

Proof Type Access Required Signal Strength Best For
GitHub Repository write access Good Developers, OSS contributors
Website Web server access Strong Personal/company sites
DNS DNS control Strong Domain owners
Website + DNS Both Strongest Organizations

Why GitHub matters for identity

GitHub is heavily indexed by:

Verified GitHub identity helps:


GitHub profile README documentation

For more information on GitHub profile READMEs:


โ† Back to Proofs