{"id":20844336,"url":"https://github.com/bootnodedev/dead-entity-switch","last_synced_at":"2026-04-22T11:31:33.268Z","repository":{"id":181043916,"uuid":"659869070","full_name":"BootNodeDev/dead-entity-switch","owner":"BootNodeDev","description":null,"archived":false,"fork":false,"pushed_at":"2023-07-13T13:52:12.000Z","size":335,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-12-27T21:51:53.886Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BootNodeDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-06-28T18:35:38.000Z","updated_at":"2023-07-13T18:20:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"cd2c6957-e8d3-458d-a09e-260beed9ea06","html_url":"https://github.com/BootNodeDev/dead-entity-switch","commit_stats":null,"previous_names":["bootnodedev/dead-entity-switch"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BootNodeDev/dead-entity-switch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BootNodeDev%2Fdead-entity-switch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BootNodeDev%2Fdead-entity-switch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BootNodeDev%2Fdead-entity-switch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BootNodeDev%2Fdead-entity-switch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BootNodeDev","download_url":"https://codeload.github.com/BootNodeDev/dead-entity-switch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BootNodeDev%2Fdead-entity-switch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32133995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T08:34:57.708Z","status":"ssl_error","status_checked_at":"2026-04-22T08:34:55.583Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T02:09:22.744Z","updated_at":"2026-04-22T11:31:33.250Z","avatar_url":"https://github.com/BootNodeDev.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dead Entity Switch\n\nThe Dead Entity Switch aims to enhance the functionality of an account by introducing a recovery mechanism that enables a designated beneficiary to assume complete control over the account under specific conditions. This functionality is designed to address situations where an account becomes inactive or dormant due to prolonged inactivity, thereby ensuring its resources can be efficiently managed and utilized.\n\n## Project structure\n\n- `/contracts`: smart contracts.\n- `/deploy`: deployment and contract interaction scripts.\n- `hardhat.config.ts`: configuration file.\n\n## Commands\n\nCommands are configured in the `package.json` file and use `hardat.config.ts`.\n\n- `yarn hardhat compile` will compile the contracts.\n- `yarn deploy-factory` deploy factory using `PK_OWNER` account and prints its resulting address.\n- `yarn deploy-account` deploy account using `FACTORY` env variable and prints its address to be replaced in `DESA_ACCOUNT` env variable. The owner will be set to the public key of `PK_OWNER`.\n- `yarn set-recovery-address` interact with `DESA_ACCOUNT` as `PK_OWNER` to set `PK_BENEFICIARY` as recovery address.\n- `yarn set-recovery-period` interect with `DESA_ACCOUNT` as `PK_OWNER` to change current recovery period (by default 365 days) to 5 minutes.\n- `yarn extract-eth-account` interact with `DESA_ACCOUNT` as `PK_BENEFICIARY` (Should be owner first) to extract ETH minus fees from account.\n- `yarn heartBeat` interact with `DESA_ACCOUNT` as `PK_OWNER` to stop any recovery ongoing.\n- `yarn init-recovery` interact with `DESA_ACCOUNT` as `PK_BENEFICIARY` to start the process of recovery.\n- `yarn finish-recovery` interact with `DESA_ACCOUNT` as `PK_BENEFICIARY` to change owner to `PK_BENEFIARY` public key if the recovery period is complete.\n\n## Environment variables\n\nIn order to prevent users to leak private keys, this project includes the `dotenv` package which is used to load environment variables. It's used to load the wallet private key, required to run the `deploy-factory` script, and other variables for further interaction with the deployed account.\n\nTo use it, rename `.env.example` to `.env` and enter values.\n\n```\nZKSYNC_WEB3_API_URL=https://zksync2-testnet.zksync.dev\nPK_OWNER=123cde574ccff...\nPK_BENEFICIARY=123cde574ccff...\nFACTORY=0x123cd...\nDESA_ACCOUNT=0x123cd...\n```\n\n## Official Links\n\n- [Website](https://bootnode.dev/)\n- [GitHub](https://github.com/BootNodeDev/dead-entity-switch)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootnodedev%2Fdead-entity-switch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbootnodedev%2Fdead-entity-switch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootnodedev%2Fdead-entity-switch/lists"}