This page was last updated in 2022-08 and is accurate for router version 0.9.55.

Following is an index to the technical documentation for I2P.

This index is ordered from the highest to lowest layers. The higher layers are for "clients" or applications; the lower layers are inside the router itself. The interface between applications and the router is the I2CP (I2P Control Protocol) API.

The specifications linked below are currently supported in the network. See the Proposals page for specifications in discussion or development.

The I2P Project is committed to maintaining accurate, current documentation. If you find any inaccuracies in the documents linked below, please enter a ticket identifying the problem.

Teknisen dokumentaation hakemisto


Application-Layer Topics

Application Layer API and Protocols

High-level, easy-to-use APIs for applications written in any language to send and receive data.

End-to-End Transport API and Protocols

The end-to-end protocols used by clients for reliable and unreliable communication.

Client-to-Router Interface API and Protocol

The lowest-level API used for clients (applications) to send and receive traffic to a router. Traditionally used only by Java applications and higher-level APIs.

End-to-End Encryption

How client messages are end-to-end encrypted by the router.

Network Database

Distributed storage and retrieval of information about routers and clients.

Router Message Protocol

I2P is a message-oriented router. The messages sent between routers are defined by the I2NP protocol.


Selecting peers, requesting tunnels through those peers, and encrypting and routing messages through these tunnels.

Transport Layer

The protocols for direct (point-to-point) router to router communication.

Other Router Topics

Developer's Guides and Resources