RFC 9458
Hide your identity from servers. No IP tracking, no request linking, no fingerprinting. Just private HTTP.
Toggle between regular HTTP and OHTTP to see what the server can see about you.
The server sees the relay's IP, not yours. Your real location stays private.
Each request is cryptographically independent. No way to correlate them.
The relay forwards blindly. Only the gateway can decrypt your requests.
Split trust between relay and gateway. Neither sees the full picture.
Encrypts request with gateway's public key. Sends to relay.
Sees client IP. Can't read encrypted payload. Forwards to gateway.
Decrypts request. Sees content. Only knows relay IP, not client.
Send a real request through our hosted OHTTP relay and gateway.
Add OHTTP to your app in minutes.
npm install ohttp-ts hpke import { OHTTPClient, KeyConfig } from 'ohttp-ts';
// Fetch the gateway's public key
const keyBytes = await fetch('https://gateway.ohttp.info/.well-known/ohttp-gateway')
.then(r => r.arrayBuffer());
const keyConfig = KeyConfig.parse(new Uint8Array(keyBytes));
// Send Lilo's request through OHTTP
const client = new OHTTPClient(suite, keyConfig);
const { request, context } = await client.encapsulateRequest(
new Request('https://api.example.com/data'),
'https://relay.ohttp.info/ohttp'
);
const encResponse = await fetch(request);
const response = await context.decapsulateResponse(encResponse);