Field Guide.
Working tools and primary-source references for building onion-aware clients. Validate an address, retrieve a known specimen, or integrate the read-only API.
Follow the primary sources.
External entries link to the Tor Project. Inclusion conveys no live availability or security assessment.
Publish an onion service
The Tor Project guide to a local service, stable identity and port mapping.
Understand a v3 address
The authoritative public-key, version and SHA3-256 checksum encoding.
Connect your two transports
Advertise an onion counterpart from an HTTPS response with Onion-Location.
Review onion-service security
Operational guidance on server information, availability and anonymity.
Retrieve a controlled specimen
A stable UTF-8 document with known expected values, over either transport.
Check an onion address
Decode a v3 hostname and verify its checksum locally, with no outbound request.
Keep hostname resolution in Tor.
For onion retrieval, the SOCKS client must pass the hostname to Tor. In curl, use --socks5-hostname. A locally running Tor client commonly listens on port 9050; use the port you configured.
curl --socks5-hostname 127.0.0.1:9050 \ http://pjzhmrhqlmjvhb5eeqmgnil7oztrbqkt45hay4zsvj5e6dblnfezopyd.onion/api/v1/fixture
The command retrieves this service’s controlled fixture. It makes no changes to Tor or your proxy settings.
A predictable response.
The retrieval specimen has a stable identifier, a known number and multilingual text. Compare those fields across your HTTPS and onion clients. Per-fetch instrumentation can change the notice field.
GET /api/v1/fixture fixture_id: oo-retrieval-v1 expected.number: 42 expected.unicode: onion · café · 東京Read the specimen