Contracts

The protocol has 2 types of contracts, main and satellites.

The main contract is where all the parameters set by the owner of the assets are stored. There’s only one main contract deployed in ETH mainnet.

There’s one satellite contract by chain supported by axelar. This contract is the one that has the allowance to spend the funds, ie. transfer the funds to heirs in case the inheritance process is finished.

The logic of inheritance is managed by the main contract. Once the process is finished a message is sent to all the satellites via axelar and each one will unlock the assets to the designated heirs.

Main contract public methods

  • addSatelite(Satelite memory _satelite)

    Lets the owner add new satellites

  • deleteSatelite(uint256 index)

    Allows the owner to delete satellites

  • addTokensToSatelite(uint256 sateliteId, address[] memory _tokens)

    Allows users to add new tokens to lock in a given satellite

  • deleteTokensToSatelite(uint256 sateliteId)

    Lets users delete their token lists from a satellite

  • secureFunds ( address[] memory _heirs, uint64 _timelock, uint8 _votesRequired )

    Main function that allows to set a list of heirs, a timelock and the percentage of heirs needed to declare death

  • setVote(address _owner, bool _vote)

    Function that lets heirs vote that someone is dead

  • veto()

    This function is called to show you're alive and stop the heirs from withdrawing the funds

  • initializeWithdrawal(address _owner)

    After someone is declared dead this function can be called to send a message to all satellites to release the funds to heirs

Satellite contract public methods

withdrawFunds(address user, address[] memory _tokens)

Lets heirs withdraw funds from someone (only if the person was declared dead).

Last updated