An open API service indexing awesome lists of open source software.

https://github.com/alchemyplatform/aa-virtual-cold-storage

Supercharging smart contract account security with custom virtual cold storage plugin functionalities | Built with @alchemyplatform Modular Smart Contract Account (ERC 6900) & aa-sdk | Learn More: https://accountkit.alchemy.com/
https://github.com/alchemyplatform/aa-virtual-cold-storage

Last synced: 12 months ago
JSON representation

Supercharging smart contract account security with custom virtual cold storage plugin functionalities | Built with @alchemyplatform Modular Smart Contract Account (ERC 6900) & aa-sdk | Learn More: https://accountkit.alchemy.com/

Awesome Lists containing this project

README

          

# cold-storage-plugin

# Overview

- You have some NFTs that are really, really valuable. You don’t want to lose these NFTs, **even if the rest of your account is compromised, including your owner key.**
- Today, you might put your NFTs in a separate EOA and lock the private key in a bank vault.
- But then you can’t use the NFTs to get into exclusive events!
- The Cold Storage plugin will let you secure your NFTs just as hard, but as part of your main modular account!

Screenshot 2024-03-12 at 3 34 20 PM

# Core Plugin Functions

1. Installing the Cold Storage Plugin
- The owner specifies a highly secure storage key when installing the plugin
2. Locking an NFT
- The owner can lock NFTs (all ERC721s, collections, or tokens) and place them in cold storage
3. Transferring NFT as the Owner
- Transferring a locked NFT is blocked
- Transferring a NFT that isn’t locked is fine
4. Transferring a Locked NFT with Storage Key
- The storage key has permission to transfer locked NFTs

# Addtional Plugin Functions

1. The storage key also has permissions to unlock NFTs and change the storage key
2. Uninstalling the Plugin
- The plugin **blocks uninstalls** when there locked NFTs

## Demo

Screenshot 2024-03-12 at 2 28 20 PM
Screenshot 2024-03-12 at 2 28 43 PM
Screenshot 2024-03-12 at 2 28 58 PM
Screenshot 2024-03-12 at 2 29 16 PM
Screenshot 2024-03-12 at 2 29 55 PM
Screenshot 2024-03-12 at 2 30 13 PM
Screenshot 2024-03-12 at 2 30 42 PM
Screenshot 2024-03-12 at 2 30 58 PM

## Development

- `git clone git@github.com:OMGWINNING/cold-storage-plugin.git`
- `cd cold-storage-plugin`
- `yarn install`
- `yarn run dev` to load the site at http://localhost:3000

## Environment variables

After you run init, your `.env` file should look like this

```bash
NODE_ENV=development

# https://dashboard.alchemy.com/apps
ALCHEMY_API_KEY=

# you can also use Access Keys of your account
# https://dashboard.alchemy.com/settings/access-keys
ALCHEMY_ACCESS_KEY=

# https://dashboard.alchemy.com/gas-manager
NEXT_PUBLIC_ALCHEMY_GAS_MANAGER_POLICY_ID=

NEXT_TELEMETRY_DISABLED=1
```