Joe Todd
Joe Todd
Oct 29, 2018 · 3 min read

chirpdat combines dat with Chirp to seamlessly and securely share files of any size.

I’m sure we have all experienced the pain of transferring a file from one computer to another. In a world with billions of interconnected devices, why is it this still seems to be a laborious process?

Well, the dat project has come up with a neat solution — a P2P transfer mechanism that allows large amounts of data to be easily shared between devices.

The dat protocol is also used by the Beaker browser — a peer-to-peer web browser which aims to harness a completely decentralised internet. If you would like to read more about the dat protocol, go here.

Dat is installed with npm and controlled via the command line, like so

It provides a 32byte identifier for your chosen shared directory, in this case is my pictures folder. Then the recipient will clone this folder using the identifier, and keep it in sync with any further updates like so

Which is great, the recipient now has a direct clone of all the pictures! But it does suffer from the same signalling issue as many other sharing mechanisms. How do I transmit my address to the recipient? This is where Chirp comes in to play.

Chirp uses sound to transfer data, allowing me to broadcast the address of my pictures to everyone nearby in one simple sonic transmission. Chirp encodes the 32byte identifier as a sequence of tones (which could be audible or inaudible/ultrasonic) and plays these through the device’s speakers. With Chirp, any recipient’s microphone can then detect these tones, and decode them back into the data payload.

So now you can share any kind of file with one simple command. To get started, you will need to first install dat as above, then install chirpdat. This requires nodejs and Python to be installed.

chirpdat uses the Chirp Python SDK, which requires portaudio to be installed, on macOS this can be installed with brew.

You will also need to create a ~/.chirprc file with your app key, secret and config, please follow the getting started guide at the Chirp developer hub. You can skip this step if you are already set up with Chirp on the command line.

You can then share a folder with the following command

And the recipient will specify the receiving folder to download the files to with

Of course the recipients will need to be listening before you can start sharing.

This tool uses the Chirp Python SDK to send and receive data-over-sound, you can view the source code over at GitHub. Please submit any issues or pull requests there.

For further documentation for the Python SDK and other platforms including iOS, Android, and JavaScript, you can visit Chirp is distributed with a generous free plan for developers and start up businesses, so you can start using data-over-sound in your own projects right away!


Written by the team at Chirp, the world's most trusted data-over-sound technology used by the leading brands in over 90 countries. Find out more at

Joe Todd

Written by

Joe Todd



Written by the team at Chirp, the world's most trusted data-over-sound technology used by the leading brands in over 90 countries. Find out more at

More From Medium

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade