Safe{Con}2 Workshop - From Key Management to Custom Metadata and Relayed Calls
The goal of this workshop is to present a few features enabled by account abstraction and the LUKSO "Universal Profiles" standards.
In this example we will present and demo the Key Manager (based on LSP6).
The LUKSO standards supports custom metadata (based on ERC725Y). These metadata can be used for storing NFT information, profile information, received tokens, or anything you need.
The LUKSO Universal Profile account (based on LSP0) unlocks relayed calls capabilities and gasless transactions. This example will show how to relay a message.
- Create a Universal Profile on mainnet or testnet.
- Send funds (LYX or LYXt) to your controller address [guide].
- Familiar with the terminal, Node.js, TypeScript.
- This repo uses
bun
, you can install it with:
curl -fsSL https://bun.sh/install | bash # for macOS, Linux, and WSL
👉 More information on the Bun docs.
bun install
Copy the env file and edit it:
-
cp .env.example .env
-
Fill the values in
.env
Variable | Description |
---|---|
UNIVERSAL_PROFILE_ADDRESS |
The address of your Universal Profile, created via the LUKSO extension. |
CONTROLLER_PRIVATE_KEY |
The private key of the controller of your Universal Profile. Can be found in the extension via Settings -> Reveal Private Keys. |
TEST_PRIVATE_KEY |
The private key of a test account used for demo purposes. Can be generated with the src/utils/generateWallet.ts script. |
RELAY_CALL_PRIVATE_KEY |
The private key of the account used to relay a call. Can be generated with the src/utils/generateWallet.ts script. |
You can run the scripts with:
bun run src/XXX.ts
- GitHub: @Hugoo
- X: @HugoApps
- Website: https://hugomasclet.com