Our products
A suite of APIs to easily build distributed consumer applications

Read and update user profiles
Profiles API makes it easy to add social user profiles and basic reputation to your Ethereum application. With profiles, your users no longer need to interact with robotic hexadecimal addresses, but can begin to enjoy a more usable, familiar, and human web3 experience.
3Box profile data is stored in a decentralized IPFS datastore that is controlled by the user, so data is secure and can be shared across various apps and services.
Humanize your decentralized application
Access shared social identity and basic reputation
Save public and encrypted profile data
Support for shared or application specific profiles
Compatible with Ethereum accounts
// Read profile data
const profile = await Box.getProfile(<ethereum-address>)
console.log(profile)
// Output:
// {
// name: 'mollie the narwhal',
// emoji: 😋
// }
const name = await box.public.get('name')
console.log(name)
// Output:
// 'mollie the narwhal'
const email = await box.private.get('email')
console.log(email)
// Output:
// 'mollyÃe@3box.io'
// Update public profile data
await box.public.set('name', 'Molly the Narwhal')
// Update encrypted profile data
await box.private.set('email', 'narwhal@3box.io')
Add chat, comment, and content threads
Messaging API makes it easy to add interactivity to your application with decentralized storage for user-generated content streams, comment threads, reviews, chats, and more. With threads, users can interact with each other on your application platform, but still retain ownership of the content they produce.
3Box messaging data is stored in decentralized OrbitDB feedstores that are shared between one or more participants.
Add interactivity to your decentralized application
Build chat, comment, and content threads
Support for moderation, if desired
Compatible with Ethereum apps
// Statically read thread
const posts = await Box.getThread('myApp', 'thethread')
// Post in thread
const myAppSpace = await box.openSpace('myApp')
await thread.post('the message')
Read and update app specific datastores
Storage API makes it easy to store data and content specific to your application directly with your user in a secure, sandboxed environment. With decentralized storage, developers can build lighterweight applications and reduce data management risk, while users enjoy more trust in the services they use.
3Box storage API saves data to an OrbitDB key-value datastore that is controlled by the user, so the user can consent to their data being shared with other apps and services.
Reduce liability by storing content directly with users
Store sensitive, application-specific, and context-specific data
Support for public and encrypted storage
Compatible with Ethereum apps
// Read space data
const spaceData = await Box.getSpace(<eth-address>, 'myApp')
// Open space for writing
const myAppSpace = await box.openSpace('myApp')
// Update public space data
await myAppSpace.public.set('favorite-nft', 'Space Narwhal')
// Update encrypted space data
await myAppSpace.private.set('last used', 'id-of-last-used-item')
Join our mailing list to never miss an update.