3Box is a distributed database that supports public and private data for Ethereum users. All data is publicly available, but private data can only be decrypted by dapps that the user has given explicit permission.
- Make it easy for users to share information publicly, while preserving privacy when desired
- Improve the onboarding experience for decentralized applications by making it easy for developers to get information about Ethereum users
- Improve Ethereum usability with distributed database infrastructure that works in production today
- Provide a decentralized system, but pragmatically utilize centralized components to facilitate the transition
3Box DB consists of two components:
3box-js which is a client library, and
3box-address-server which is a server. Together they are used to keep track of user data stored in
orbit-db instances. Learn more about the 3Box architecture and how we do access control with encryption.
3box-js is the client side library used to read, write, and delete public and private data associated with the user. This library is used to get profile information about an address.
We assume that end users have a web3-compatible browser or wallet (such as MetaMask or Status) which supports personal_sign.
3Box Address Server
3box-address-server is a server utilizing a REST-API that is used to associate an Ethereum address with its latest 3Box address. This is what must be looked up to sync the user's data.
The 3box.io dapp is how users manage their 3Box data, including profile information and other.
3box-activity is an API that makes it easy to construct activity feeds for Ethereum users. Part of Ethereum Profiles on the 3Box web app.