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/
- Host: GitHub
- URL: https://github.com/alchemyplatform/aa-virtual-cold-storage
- Owner: alchemyplatform
- Created: 2024-03-13T01:46:43.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-10T05:36:33.000Z (about 2 years ago)
- Last Synced: 2024-05-21T04:11:05.731Z (about 2 years ago)
- Language: Solidity
- Homepage: https://aa-virtual-cold-storage.vercel.app
- Size: 6.56 MB
- Stars: 4
- Watchers: 12
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Codeowners: CODEOWNERS
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!

# 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

## 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
```