Getting Started
Platform Contracts
AccountsSigning LogicAttestationsToken Escrow
Internal Contracts
Toggle Dark Mode


Learn how to build an app on Bloom

Bloom is an end-to-end protocol for decentralized identity and credit scoring. The protocol's core functionality is handled with Ethereum smart contracts and uses L2 scaling solutions such as state channels to ensure fast and cheap operations on the blockchain.

This documentation will teach you how to be an attester on the Bloom network, build solutions that require BloomIDs, and even make your own Bloom client for handling customer operations. If you need any support, please join us on our Slack channel as we would be happy to assist you.

Contract Overview


  • Accounts: AccountRegistry associates Ethereum addresses with BloomIDs. Users authorize transactions within the Bloom protocol using addresses they associate with their BloomID.
  • Signing Logic: Bloom relies on the signTypedData proposal described in EIP712 for many protocol interactions including allowing users to delegate transactions to Bloom to pay transaction costs. The SigningLogic contract contains all the logic to recover addresses from signTypedData signatures.
  • Attestations: One of the core components of Bloom protocol is Identity Attestations. The attestations contracts enable users to securely associate verified identity information with their BloomID in order to strengthen their profile.
  • Token Escrow: Users can lock up BLT in the Token Escrow contract. Once locked up users can send micropayment to other users by signing payment authorizations with an address associated with their BloomID.
  • Voting: Bloom’s protocol heavily relies on community voting to make important protocol decisions. Anyone can create a Poll in the Bloom network by interacting with the VotingCenter contract.