3Box is the best way for developers to store and manage user data
If you want to build a fully-featured application but want to limit your backend infrastructure, where do you keep the user data that is critical to enabling these interactive features?
3Box allows front-end web developers to keep data directly with users on an open storage network instead of storing data on a centralized database server, browser localStorage, or the blockchain. With 3Box, developers are able to quickly build more secure, lightweight, and powerful applications.
Today, 3Box developers are primarily web3 developers building front-end applications on Ethereum. These developers want to provide engaging, web2-like user experiences without keeping user data themselves.
3Box is a distributed data storage system that uses IPFS
for decentralized storage, OrbitDB
for database structuring (key-value and feed stores), and 3ID
for decentralized identity. This powerful combination of identity and storage technologies provides developers with an open, decentralized network for managing user data.
Although IPFS and OrbitDB are still new technologies, we designed 3Box to work in production environments today. To ensure 3Box is capable of sustaining scaled usage, we provide additional cloud infrastructure to improve the reliability and performance of the decentralized network. This includes hosted nodes, data pinning services, and caching layers.
Many application developers and companies today look at user data as a liability instead of an advantage. 3Box's decentralized architecture allows developers to eliminate much of the liability traditionally associated with securing and protecting user data on their server, and instead allows them to leverage shared open networks for the security and management of this information.
Since 3Box data is kept directly with the user instead of aggregated on a centralized server, it also gives the user vastly more privacy and control over how this information is shared and used by applications online. Data can be stored publicly, where is it visible to all, or privately, where it is encrypted by the user on the client-side. When data is stored privately on 3Box, it is unreadable by other applications and users unless the user grants them explicit permission.
One of the largest benefits to 3Box is that it makes it easy for the user to carry their data across various apps, networks, and services without needing to recreate new data each time. Some refer to this as portable, self-sovereign data.
To make this possible, all 3Box users are assigned a 3ID
which acts as their unique, universal decentralized identifier (DID) in the 3Box network and throughout the broader decentralized identity ecosystem. All data saved in the user's 3Box is mapped to the DID instead of any particular blockchain or network address.
In addition to enabling data portability across apps, networks, and services, (and supporting using the same data with multiple accounts) the DID abstraction also combats data lock-in by any particular storage vendor, including 3Box, since the user can always take their data to another provider that adopts the same standards.
3Box provides developers with an easy to use toolkit that allows for quickly building production-ready applications capable of scaling with increased usage. Our suite of APIs make it easy for developers to interact with 3Box stores in the most commonly used ways. We currently offer APIs for Identity, Authentication, Profiles, Storage, and Messaging.
Developers should integrate these core API functionalities into their project using one of our SDKs. 3Box.js is a JavaScript SDK that delivers the full suite of 3Box APIs to web applications. IdentityWallet.js is a JavaScript SDK that exposes Identity and Authentication functionalities directly to third-party crypto wallets.
Our JavaScript SDKs enable applications to run 3Box directly in the user's browser or wallet, and users don't need to install any software to use 3Box. In fact, users may barely even know that they're using 3Box since many of the system's operations can be managed in the background of your application.