A browser extension wallet for Cardano, Bitcoin and Midnight.
Note:
lace-platform, the code repository for Lace v2 and Lace Midnight Preview, is linked as a git submodule, namedv2, to support the integration of Midnight in v1.
Prerequisite: nvm or fnm node version manager is required.
make setupThen create v1/apps/browser-extension-wallet/.env with the following variables:
BLOCKFROST_PROJECT_ID_MAINNET=your_mainnet_key
BLOCKFROST_PROJECT_ID_PREPROD=your_preprod_key
BLOCKFROST_PROJECT_ID_PREVIEW=your_preview_key
Or use the command:
make create-v1-dot-env \
BLOCKFROST_PROJECT_ID_MAINNET=your_mainnet_key \
BLOCKFROST_PROJECT_ID_PREPROD=your_preprod_key \
BLOCKFROST_PROJECT_ID_PREVIEW=your_preview_keymake build-dev # Development build (Chrome)
make build-prod # Production build (Chrome)
make build-dev-firefox # Development build (Firefox)
make build-prod-firefox # Production build (Firefox)For faster rebuilds when only the extension app code changed (skips v1 packages and v2):
make build-dev-ext # Fast development rebuild (Chrome)
make build-ext # Fast production rebuild (Chrome)The full build command creates three builds:
- The build in the root
/distis the bundle that combines v1 and LMP - The build in
v1/apps/browser-extension-wallet/distfolder only contains Lace v1 without the LMP - The build in
v2/apps/midnight-extension/distfolder only contains LMP
When working on the v2 submodule in a separate IDE/directory, you can symlink it to avoid working inside the nested submodule:
make link-v2 REPO_PATH=~/my-work-dir/lace-platformThis backs up v2 to v2.bak, creates a symlink to your standalone repo, and configures git to ignore the symlink.
To restore the original submodule:
make unlink-v2Workflow:
- Clone lace-platform to a separate directory
- Run
make link-v2 REPO_PATH=~/path/to/lace-platform - Open lace-platform in IDE 1, lace in IDE 2
- Changes in IDE 1 are instantly visible in IDE 2
- Build/test in lace as normal
- When done, push changes from lace-platform first
- Run
make unlink-v2to restore and update the submodule reference
To update the v2 submodule to the latest commit on main branch, run:
git submodule update --remote v2For technical details about the project structure and bundling approach, see ARCHITECTURE.md.