Announcing Ethereum Profiles 1.0.0 is Live

How to get started using 3Box profiles today 😄

We released Ethereum Profiles version 1.0.0 today!

Ethereum Profiles makes it simple for users to create a reusable profile for their Ethereum address which can easily be shared with dapps to simplify the onboarding experience and create a more frictionless, social web3 dapp ecosystem. Ethereum Profiles allows Ethereum users to collect and control their information on the distributed web using their existing Ethereum wallets.

Create your Ethereum Profile on 3Box.io

Ethereum Profiles 1.0.0

Ethereum Profiles Developer API

Dapp developers can use the Ethereum Profiles API to easily read and update users’ profiles without needing to store information on the blockchain or a central server. We’re now on 3Box.js version 1.0.0.

Built on 3Box

Ethereum Profiles are built on 3Box, a distributed database system that allows Ethereum dapp developers to keep public and private information about an Ethereum account. Since 3Box data is stored on IPFS and managed in OrbitDB instances, 3Box provides an off-chain, user-addressed content graph with support for encrypted data that is accessible to Ethereum developers via a simple front-end javascript library.

Ethereum’s missing user data layer

Ethereum Profiles is Ethereum’s missing user data layer. 3Box recognized a deep need in the Ethereum market for a more usable and scalable user-managed database system for Ethereum accounts that was capable of supporting seamless and free user onboarding to dapps, enhanced user privacy with encryption, cross-dapp interoperability, free updates, and no wait times.

With Ethereum Profiles, 3Box brings the power of the distributed web to every Ethereum user and paves the way for a more human, social, and connected web3 ecosystem.

👋 Create your Ethereum Profile Today

⚙️ Explore the Ethereum Profiles Developer API

How to Create Your Ethereum Profile

The 3Box app (https://3box.io) allows you to create and manage your Ethereum profile. Access the 3Box app from any web3 Ethereum browser.

Getting Started

  1. Unlock your web3 wallet or browser 🔓
  2. Log in to 3box.io 👋
  3. Follow the onboarding instructions ➡️
  4. Complete your profile 😎
  5. View your activity feed 🔥
  6. Log in and share with participating dapps 🔷

1. Unlock your web3 wallet or browser 🔓

The 3Box application requires that users have a web3-enabled browser to access the sites features. Ensure your wallet is unlocked to begin.

If you’re on desktop, we recommend using the MetaMask browser extension with Google Chrome, Mozilla Firefox, or the Brave Browser. If you’re on mobile, we recommend using Coinbase Wallet or Status.im which have built-in Ethereum browsers.

2. Log in to 3box.io 👋

3. Follow the onboarding instructions ➡️

4. Complete your profile 😎

5. View your activity feed 🔥

6. Log in and share with participating dapps 🔷

Users can share the same Ethereum Profile with different dapps, so they can begin to establish a common identity on Ethereum. 3Box is looking to integrate with every project in the Ethereum community so we can all deliver better shared, collaborative experience to our users — together. If you’re interested in working together on this initiative and want more details, please reach out by completing the 3Box integration form, or just drop in our Discord and chat with us there.

How to Integrate Ethereum Profiles API

The 3Box.js Ethereum Profiles Developer API (https://github.com/uport-project/3box-js) allows developers to read and update users’ 3Boxes.

Getting Started

  1. Install from npm
  2. Call Box.getProfile(<ethereum address>) to lookup a public profile
  3. Call Box.openBox(<ethereum address>, ethereumProvider) to request interactive permissions
  4. Call box.onSyncDone(callbackFunction) to know when the db is fully synced
  5. Call box.public.set(<key>, <value>) or box.private.set(<key>, <value>) to write data
  6. Call box.public.get(<key>) or box.private.get(<key>) to read data
  7. Call box.public.remove(<key>) or box.private.remove(<key>) to delete data
  8. Call box.close() or box.logout() to end the session

1. Install from npm

npm i 3box

2. Call Box.getProfile(<ethereum address>) to lookup a public profile

Retrieve a user’s public profile. Can be called statically at any time, and does not require the user’s consent. Will return the public profile for any ethereum address.

3. Call Box.openBox(<ethereum address>, ethereumProvider) to request interactive permissions

Retrieve a user’s 3box object. Can be used to get and set public and private data associated with the user. Returns a promise which resolves to a `box` object.

4. Call box.onSyncDone(callbackFunction) to know when the db is fully synced

It sometimes takes a short while to fully sync the 3box data from the network. You should register a function using this method to know when the 3box is fully synced.

5. Call box.public.set(<key>, <value>) or box.private.set(<key>, <value>) to write data

Write data to a user’s public profile or private profile. Make sure that the key you use doesn’t collide with any other dapp. Have a look here.

6. Call box.public.get(<key>) or box.private.get(<key>) to read data

Retrieve a user’s public or private data. These functions return a promise that resolves to the value that has been set previously.

7. Call box.public.remove(<key>) or box.private.remove(<key>) to delete data

Remove data from the user’s public or private profile.

8. Call box.close() or box.logout() to end the session

Close the 3box instance gracefully. If you call logout the user will have to give consent again the next time they openBox.

Some developers have been reporting issues with the react npm build. If you encounter issues, try using the the dist file found in the 3box npm package. (node_modules/3box/dist/3box.min.js)

Join the 3Box community call on October 25 to learn more about the Ethereum Profiles 1.0.0 release

We’ll be making introductions, detailing the 3Box 1.0.0 release, sharing the first batch of community integrations, and answering questions. Hope you can make it! Click to add to google calendar.

Agenda:
10 mins — Introductions 👋
10 mins — 3Box v1.0.0 ⭐
15 mins — Community Demos ✨
5 mins — Q/A 💬

About 3Box: 3Box is an open source distributed database project started by members of uPort and ConsenSys in July 2018. Ethereum Profiles 1.0.0 is the first major release by the 3Box team to date. Contribute to 3Box on github: https://github.com/uport-project/3box.