A wallet that has inheritance built-in on the Ethereum Blockchain.
Ethereum wallets are created using a Seed or Private Key and can send and receive almost any ethereum assets and create contracts. But it lacks a significant feature, which is to retrieve the assets in case of the wallet owner's demise.
Inherichain is a Wallet Contract with almost all the features of a normal EOA (Externally Owned Account). Along with that, it also can transfer the ownership of the contract wallet to the specified Heir.
A basic description of all the functions, modifiers, and events are specified in the doc folder here.
Admin can :
- Update the Backup Owner.
- Update the Heir (Resets the Claim Process).
- Update the Deadlines.
- Add new Approvers.
- Delete old Approvers.
- Interact with Other Contracts (ERC20 Transfers, etc.).
- Withdraw some or all ETH.
- Transfer some or all ETH.
- Deploy Contracts.
Backup Owner can :
- Update the Owner.
Heir can :
- Start the Claim.
- Access Ownership using Approver Votes or Complete Deadline.
Approver can :
- Approve or Reject Heir.
- Initiate Charity Process.
Charity can :
- Access Ownership after approver Initiation.
Every User can :
- Deposit ETH and other assets.
- Involve Kleros if heir & owner demise at the same time to choose what to do with the funds.
- Introduce Vote weightage for approvers.
- Mechanism to divide the contract asset into parts based on multiple heirs. Expanding on the same, giving different % for different Heir.
-
Create a new folder.
-
Copy the Git Clone URL from GitHub: https://github.com/remedcu/Inherichain.git
-
Clone the Repository.
git clone https://github.com/remedcu/Inherichain.git
-
In a command line, inside the Inherichain folder, write
npm i
ornpm install
-
Now run
ganache-cli
and copy the mnemonic, address, and private key part for later use. (Make sure it runs on port 8545 if you intend to run thetruffle test
command). -
In a command line, run
truffle migrate --reset
. -
(Optional) If you want, you can run the
truffle test
to see if it passes all tests or not. -
To run the frontend part, just use
npm start
and it will start a server in localhost.
-
Please follow the step 1 - 6 of How to Run the Project.
-
Now start the test using:
npm run test
Note: You can also use the truffle test
to test the smart contract if you already have ganache-cli
or Ganache GUI running in the background for testing in the local network.
Using solidity-docgen: Inherichain.md