Link addresses on chain

Anyone can use the Bloom Protocol smart contracts using any address. Bloom supports regular EOA addresses or smart contracts like multisigs. The Account Registry Logic contract enables users to demonstrate ownership of multiple addresses by linking the addresses on chain.

Contract name Network Address
AccountRegistryLogic Mainnet 0xB0f6905fa74aD35C0Dc43FF60A2250488735dfC5
AccountRegistryLogic Rinkeby 0xAe89E1c6E82e3cd602EEa08A1C40cAf110dB9295

Links are stored as a mapping from an address to a linkId. Users can have any number of addresses point to the same linkId. A linkId of 0 indicates that an address does not have any active links

mapping(address => uint256) public linkIds;


Public Functions




When the contract is first deployed it is in an initializable state. The deployer specifies an address that has privileges to migrate data from a previous version of account registry. Once initialization is complete the initializer relinquishes this privilege.

Contract name Network Address
BatchInitializer Mainnet 0x28C7ba752fD214A54ea25f075ab459Ab17bd5fD2
BatchInitializer Rinkeby 0x7123ead9Bd53B091ED2b523C89398Bd050D59DC3



Account Registry Logic emits events when the user addresses are linked or unlinked.

event AddressLinked(address indexed currentAddress, address indexed newAddress, uint256 indexed linkId);
event AddressUnlinked(address indexed addressToRemove);