Datagrams build upon the base I2CP to provide authenticated and repliable messages in a standard format. This lets applications reliably read the "from" address out of a datagram and know that the address really sent the message. This is necessary for some applications since the base I2P message is completely raw - it has no "from" address (unlike IP packets). In addition, the message and sender is authenticated by signing the payload.

Applications written in Java that want to use datagrams can access the net.i2p.client.datagram package (a part of the core SDK in i2p.jar), while applications in other languages can use SAM's datagram support.