ConnectOnionConnectOnion
Back to Blog

Why We Choose Hex-Encoded Ed25519 Over Ethereum Addresses

• Design Decision

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 signatures/second
Secp256k1: ~20,000 signatures/second
3.5x faster for agent communications

Security

• Deterministic signatures (same input → same signature)
• Resistant to timing attacks
• No random number generator vulnerabilities

Simplicity

• Fixed 32-byte keys and 64-byte signatures
• Simple, clean API
• Battle-tested in SSH, Signal, and more

Our Format: Honest and Fast

0x2b9def...7a3fdf

0x prefix: Signals "this is cryptographic material"
64 hex chars: The full Ed25519 public key
66 total chars: 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.