Skip to content

CincoCoding/Irrevocable-Time-Lock-Blockchain-Trust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

Irrevocable-Time-Lock-Blockchain-Trust

Group Project 3 - December 19, 2022 - UMN Fintech

Group Members

  • David Garcia
  • Luke Turner
  • Kyle Jensen
Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage

About The Project

Irrevocable Time Lock Trust

The primary goal of our project is to create a blockchain wallet with a time-lock that acts as an irrevocable trust.

It pays out to two beneficiaries from a privately held trust wallet via smart contract. Upon submitting and signing the contract to the blockchain these options will become immutable and unchanging. Following this, the contract will pay out only after the designated time-lock to the specified beneficiaries.

Adjustable Features:

  • Transaction Amount
  • Time-Lock Interval
  • Primary Wallet Address (Trustee)
  • Receiving Wallet Addresses (Beneficiaries)
  • Number of Smart Contracts
  • Receipt Data

(back to top)

Built With

  • Solidity
  • Python
  • Streamlit
  • Ganache
  • Json
  • Remix
  • Ethereum

(back to top)

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

Before running or installing anything else, the following libraries need to be installed.

  • streamlit

    pip install streamlit
  • web3

    pip install web3==5.17

Installation

  1. Download and quick install Ganach at: https://trufflesuite.com/ganache/
  2. Clone the repo
    git clone https://github.com/CincoCoding/Irrevocable-Time-Lock-Blockchain-Trust.git

Running Streamlit

  1. Open Ganache with access to wallets
  2. Locate the 'streamlitApp.py' file
  3. Run the app in terminal using the command
    streamlit run streamlitApp.py
  4. Choose Trustee and copy 'Private Key' from Ganache and paste into the applicable area
  5. Choose Beneficiary 1 and copy 'Private Key' from Ganache and paste into the applicable area
  6. Choose Deposit amount
  7. Choose time period for Time-Lock function
  8. Create Contract
  9. Send Contract
  10. Sign Contract
  11. Wait alloted Time-Lock amount of time, then withdraw using the correct wallets (Beneficiary 1 and Beneficiary 2)

(back to top)

Usage

Current Usage

The irrevocable time-lock can be set to many different time periods, and restricts any withdrawel before the time has elapsed. The initial deposit is also variable. The contract also restricts all entities involved (trustee, beneficiaries, time-lock) to be unchanged once submitted and signed.

Future Usage

This project is the foundational work for a larger future project idea. As of now there are only two beneficiaries, but could be expanded to more. In the future there could also be automation added to the payout time-lock. An additional feature that could be added is that of interest or APR return to the trust and therefore beneficiaries.

(back to top)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published