Skip To Main Content

Close Mobile Menu ( Don't delete it )

Mobile Utility

Header Top

Header Utility

Header Bottom

Mobile Trigger

Breadcrumb

Sent by the router when it needs the client to sign a new set of tunnels for inbound traffic. Significance for Developers

The is the standard interface through which client applications interact with an I2P router to send and receive data across the anonymous network. By decoupling the application logic from the complex routing and encryption tasks of the network, I2CP allows developers to build privacy-focused tools—such as secure messaging or file-sharing systems—without needing to implement the underlying peer-to-peer (P2P) protocol themselves. Core Functionality and Architecture

: I2CP handles the high-level requests from applications (e.g., "send this data to this destination") and translates them into the lower-level tunnel and Garlic routing mechanisms used by the I2P network.

: The client requests the current network time from the router via GetDate and SetDate messages.

: Since I2P is a packet-switched network where messages can be lost or delayed, I2CP is inherently asynchronous, allowing applications to manage their own reliability or use the built-in streaming library for TCP-like behavior. The Initialization Process

: A CreateSession message is sent, containing the application's configuration and its cryptographic Destination (public key).

: The client sends a protocol version byte (typically 0x2A ) to ensure compatibility.

Requests the router to resolve a human-readable name (like example.i2p ) to a cryptographic Destination.