# Sending messages The core of our application has been built. All that's left is to make a python command-line tool that takes user input and sends it to `dchatd` over `JSON-RPC`. However, we'll need to implement `JSON-RPC` on `dchatd` first. We'll implement a `JSON-RPC` method called `send` that takes some user data. When `dchatd` receives `send` it will create a `DchatMsg` and send it over the network using `p2p.broadcast`. This is `p2p.broadcast`: ```rust /// Broadcasts a message concurrently across all active channels. pub async fn broadcast(&self, message: &M) { self.broadcast_with_exclude(message, &[]).await } ``` `broadcast` takes a generic `Message` type and sends it across all the channels that our node has access to.