Skip to content

x511The web needs a human layer.

An open standard for proving you're a person, without proving who you are.





Few lines to protect your appAny developer can add proof-of-personhood middleware to their server in a few lines of code.Currently supporting WinterTC compatible frameworks, such as Hono and Elysia.
typescript
import { x511, toHono } from 'x511-tba'

const { verified, verify } = x511({
  domain: 'https://mywebsite.com',
  basePath: '/x511',
  providers: ['self', 'zkpassport'],
  disclousures: {
    minAge: 18,
  },
})

const app = new Hono()

app.mount('/x511', verify)
app.get('/protected', toHono(verified), (c) => {
  return c.text("You're in")
})
typescript
import { x511, toElysia } from 'x511-tba'

const { verified, verify } = x511({
  domain: 'https://mywebsite.com',
  basePath: '/x511',
  providers: ['self', 'zkpassport'],
  disclousures: {
    minAge: 18,
  },
})

new Elysia({ adapter: node() })
  .use(html())
  .mount('/x511', verify)
  .use(toElysia(verified))
  .get('/protected', () => "You're in")
  .listen(8000, () => {
    console.log('Server is running on http://localhost:8000')
  })




One person. One proof.X511 uses HTTP 511 and zero-knowledge proofs to draw a line between humans and bots. You cannot fake a ZK proof. You cannot generate one without a real identity document. AI agents, bots, and scripts cannot pass through an X511 gate. Your identity stays yours.




Humans and agents. One protocol.
🤖Agent compatibleAI agents can act on your behalf. Sign under your agent and let it pass through X511 gates as you.
🧍Human verifiedEvery request traces back to a real person. One proof, one human. No fakes, no duplicates.
🔏You stay privateZero-knowledge all the way down. Prove personhood without revealing identity. Not to the server, not to anyone.