Skip to main content

Get started with SyftBox

SyftBox is a pluralistic protocol designed to break down the barriers that keep the world's non-public data siloed.

  • Preserve Privacy & Security: As a data owner, you maintain full control over your data - your data stays where it belongs, with no copying, no moving, and no loss of control.
  • Collaboration at scale: By enabling data owners to selectively participate in computations and disclose minimal information, we create a thriving network where researchers and developers can easily develop and federate computations across diverse data assets.

Imagine if you could:

  • Develop applications that leverage user data without centralization.
  • Contribute to groundbreaking scientific research using your own data.
  • Monetize specific uses of your data for targeted audiences.
  • Collaborate on data-driven projects while retaining complete control over your data.

SyftBox in a Nutshell:

SyftBox powers a network of datasites much like the internet connects websites. It creates a large, distributed file system with Unix-like permissions, where each datasite is simply a folder on someone's computer, under their full control. It is also a lightweight orchestrator, enabling approved Apps to run directly on the data owner's system.

Try out SyftBox

Let's begin by installing SyftBox!

info

You'll need curl installed for the following command to work. There is a high chance you already have it, otherwise here are a few guides for installing it:

Open a terminal, copy the following command and run it:

curl -LsSf https://syftbox.openmined.org/install.sh | sh

This will download our install script, execute it, and run the local SyftBox client on your machine. You should be able to see an output similar to this one:


____ __ _ ____
/ ___| _ _ / _| |_| __ ) _____ __
\___ \| | | | |_| __| _ \ / _ \ \/ /
___) | |_| | _| |_| |_) | (_) > <
|____/ \__, |_| \__|____/ \___/_/\_\
|___/

Installing uv
Installing SyftBox (with managed Python 3.12)
Installation completed!

Start the client now? [y/n] _

Press y and then Enter/return to start the client. Because it's the first time you're running it, you'll be asked to choose to where SyftBox should live on your machine. That's where you'll add your files and where files from other datasites will be synced:

Starting SyftBox client...
Where do you want SyftBox to store data? Press Enter for default (/HOME/SyftBox): _
note

You can choose another directory, the SyftBox client will remember it when you start it again in the future.

The last step is a quick authentication step, where you'll be prompted for your email address:

Selected directory '...'
Enter your email address: _

The email address is your user ID, it's the unique identifier for your datasite in the SyftBox network. After that, you'll receive by email your temporary authentication token. Paste it after the message shown in your shell:

Please enter the token sent to ... . Also check your spam folder: _
note

Once you use the token, you don't need it anymore, so you can safely delete the email.

That's it - you now have SyftBox running on your machine!

info

If stopped (by closing the terminal or stopping the process), the SyftBox client can be restarted by running the install command again. You won't need to authenticate again.

Let's explore the SyftBox network! 👇

Find peers & data on the network

Your folder is now part of the growing SyftBox network that is synced, similarily to a networked version of Dropbox, with other multiple connected Datasites. Here is a quick dashboard where you can see your peers:

Can your spot yours? 👀

Discovering data

For now, we are exploring types of metadata through which peers can make their data assets discoverable for use without giving direct access. When one adds such metadata, their data will be findable through our Data Search.

Join your first federated App

SyftBox allows anyone to develop custom Apps and broadcast them to peers in the network. If your peers approve it, it is run on their machine, making it easy to federate a computation across 100s of people.

info

Simply put, SyftBox Apps are regular scripts (in Python or other language) similar to cronjobs, which can be run locally on other Datasites.

Let's install the CPU Tracker App to see an illustrative example of how data can be aggregated at scale from other Datasites while maintaining privacy.

The CPU Tracker App

This is an App that gathers live CPU data from participating Datasites, aggregates them and displays them in a public chart.

Click here to see a live example of the CPU Tracker App running on the main Syft network.

On the page linked to above, click on the installation button on the top-left.

note

Make sure your SyftBox client is still running for this to work!

That's it! You're now part of the computation - this means, your CPU load will be included in the aggregation, helping to calculate the average CPU load across the SyftBox network.

Your Datasite will appear in the "Active Peers" list participating in the computation.

Next steps

This was a very brief introduction, but we have more resources to help you get started with SyftBox:

  • For protocol users: if you want to explore further the network, experimenting with your own files and joining different computations, start here:
  • For builders: if you want to learn how to build something amazing on top of SyftBox, the following tutorials are for you: