Skip to content

Anyone Protocol

Category: DePIN | Status: Active

Website: https://anyone.io

Description

Anyone Protocol (formerly ATOR) is a decentralized onion-routing privacy network. Node operators run relay nodes and earn ANYONE tokens for bandwidth contributed. Think "incentivized Tor." Official Docker images available for amd64 and arm64 including Raspberry Pi. Configuration is file-based via an anonrc file mounted into the container (Nickname, ContactInfo, ORPort, etc.).

Earning Estimates

Metric Value
Monthly range $0 - $50 (estimate)
Per relay
Minimum payout
Payout frequency Epoch-based
Payment methods Crypto

Earnings based on bandwidth contributed and uptime. Open source project with active development.

Requirements

Requirement Value
Residential IP No
Minimum bandwidth 10 Mbps
GPU required No
Minimum storage None
Supported platforms Docker, Linux

Setup Instructions

1. Create an account

No account creation is needed. Anyone Protocol relays are permissionless -- you just run a node and earn ANYONE tokens based on uptime and bandwidth.

2. Configure anonrc

Anyone Protocol requires an anonrc configuration file. Create it before deploying:

User anond
DataDirectory /var/lib/anon
Log [~guard]notice [guard]warn file /etc/anon/notices.log
ORPort 9001 IPv4Only
ExitRelay 0
Nickname YourRelayName
ContactInfo your@email.com
AgreeToTerms 1

There is no ControlSocket in this config on purpose. Nothing uses the control socket: CashPilot reads earnings by relay fingerprint, and the image has no healthcheck that needs it. When it is configured, the relay refuses to create it in a /run/anon that other users can read, which is how Docker creates that directory, and it logs two warnings a minute. Over six months that grew notices.log to about 150 MB. IPv4Only stops an hourly notice about a missing IPv6 address; leave it off if your relay has a public IPv6 address.

The Log line keeps every notice except those from guard selection, where only warnings get through. On the Anyone network the relay's own circuits often run out of distinct guards, and each time it logs "All current guards excluded by path restriction type 2", about once a minute. That notice is harmless (Tor issue 40886) and would otherwise add about 55 MB to the log every six months. Do not set ConfluxEnabled 0 to silence it: on a relay that logs an hourly warning and risks the relay being flagged.

Important: AgreeToTerms 1 is required since version 0.4.9.7-live. Without it, the container exits immediately with "User has not agreed to the terms and conditions."

3. Port forwarding (required)

Port TCP 9001 must be forwarded to the server running the relay. The relay performs a self-test by connecting to its own ORPort from the outside. If the port is not reachable, the relay will not publish its descriptor to the network directory — it stays invisible, handles zero traffic, and earns nothing. You'll see repeated warnings in notices.log:

"Your server has not managed to confirm reachability for its ORPort(s). Relays do not publish descriptors until their ORPort and DirPort are reachable."

If running behind a firewall (e.g. ufw), also allow port 9001/tcp inbound.

4. Deploy with CashPilot

The deploy creates two named volumes, anon-config (mounted at /etc/anon) and anon-data (the relay identity). CashPilot does not write anonrc for you: put it in the config volume on the worker host first, owned by the relay user, or the container exits at once.

docker volume create anon-config
docker run --rm -i -v anon-config:/etc/anon alpine \
  sh -c 'cat > /etc/anon/anonrc && chown -R 100:101 /etc/anon' < anonrc

If you change the volumes in the deploy form to host directories instead, write the file into the directory mounted at /etc/anon. Then, in the CashPilot web UI, find Anyone Protocol in the service catalog and click Deploy. If you change anonrc later, docker kill -s HUP <container> reloads it without a restart.

Docker Configuration

  • Image: ghcr.io/anyone-protocol/ator-protocol
  • Platforms: linux/amd64, linux/arm64

Environment Variables

Variable Label Required Secret Description
CONTACT_EMAIL Contact Email No No Operator email (set in anonrc ContactInfo if not already present)

Required Configuration

The anonrc file must contain AgreeToTerms 1 to accept the Anyone Protocol Terms. The entrypoint script only handles Nickname and ContactInfo -- the terms check is in the anon binary itself.