Why We Choose Hex-Encoded Ed25519 Over Ethereum Addresses
September 2025 • Design Decision #005
When designing agent network identities, we chose hex-encoded Ed25519 public keys with a 0x prefix. Familiar to developers, fast for agents, and honest about what it represents.
The Address Format Dilemma
Every network needs addresses. TCP/IP has IP addresses. Ethereum has wallet addresses. ConnectOnion agents need their own addressing scheme. The question: what format serves both humans and machines?
Why Not Ethereum Format?
Ethereum addresses (20 bytes, checksummed) are familiar to crypto developers. But using them creates confusion:
- Users expect Ethereum compatibility that doesn't exist
- 20 bytes loses security compared to full 32-byte keys
- Checksumming adds complexity without real benefit for agents
Why Not Base58 (Bitcoin/Solana)?
Base58 is human-friendly - no confusing characters like 0/O or l/1. But:
- Requires base conversion (computational overhead)
- Variable length complicates parsing
- Not native to any programming language
Why Ed25519?
Performance
Ed25519: ~70,000 sig/sec
Secp256k1: ~20,000 sig/sec
3.5x faster
Security
- Deterministic signatures
- Timing attack resistant
- No RNG vulnerabilities
Simplicity
- Fixed 32B keys, 64B sigs
- Simple, clean API
- Used by SSH, Signal
Our Format: Honest and Fast
Signals cryptographic material
Full Ed25519 public key
Fixed length, easy to validate
Developer Experience
# Generate
address = "0x" + public_key.hex()
# Validate
if address.startswith("0x") and len(address) == 66:
public_key = bytes.fromhex(address[2:])No special libraries. No base conversions. No checksums. Just hex encoding that every language supports natively.
Visual Truncation
For display, we show: 0x2b9d...3fdf
First 6 chars + last 4 chars = enough visual distinction for humans while keeping displays clean.
The Philosophy
Don't pretend to be something you're not. Our addresses aren't Ethereum addresses. They're not Bitcoin addresses. They're ConnectOnion agent addresses - hex-encoded Ed25519 public keys, fast for agents and familiar to developers.
The best address format is the one that developers never have to think about.
