Petra Vault
Multisig wallet solution on the Aptos blockchain
Petra Vault enables you to create and manage multisig vaults on the Aptos blockchain.
Create or Import Vaults: Quickly create a new vault or import an existing one (including those created from other platforms).
Proposal Presets: Packed with presets with seamless experiences for common transactions (e.g. sending coins, adding/removing owners, publishing modules, etc.)
Transaction Simulations: Preview the effects of transactions before sending them.
And that's not it, explore the rest of the features yourself at vault.petra.app!
For documentation, please refer to the petra.app/vault.
Petra Vault has been audited by Hacken.
- Node.js
- pnpm
Runtime versions are defined in the .tool-versions
file. You can install these runtimes using mise.
-
Clone the repository:
git clone https://github.com/aptos-labs/petra-vault.git cd petra-vault
-
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
-
Open http://localhost:3000 in your browser to see the application.
Petra Vault uses the No-Code Indexing (NCI) service from Geomi in order to index multisig transactions and ownership discovery. In order to run the indexer, please follow the instructions in the indexer README.
Create a .env.local
file in the apps/web
directory by copying the example file:
cp .env.example .env.local
Required environment variables:
NEXT_PUBLIC_ENABLE_REACT_SCAN=0
NEXT_PUBLIC_ENABLE_EMBEDDED=1
# API Keys for Aptos networks (obtain from https://geomi.dev/)
NEXT_PUBLIC_APTOS_MAINNET_API_KEY=<api_key>
NEXT_PUBLIC_APTOS_TESTNET_API_KEY=<api_key>
# Google Analytics ID (obtain from https://analytics.google.com)
NEXT_PUBLIC_GA4_ID=<ga4_id>
# Sentry Auth Token (obtain from https://sentry.io)
SENTRY_AUTH_TOKEN=<sentry_auth_token>
CI=false
Note: Make sure to obtain the necessary API keys from the provided links to avoid rate limiting issues.
The monorepo uses vitest for unit testing and playwright for end-to-end testing.
To run the unit tests, you can use the following command:
pnpm test
To get started with E2E tests, you must first install the Playwright dependencies:
pnpx playwright install --with-deps chromium
Then, you can run the E2E tests using the following command:
pnpm test:e2e
Note: Running it from the root directory will automatically do any necessary builds steps. If done in a subdirectory, make sure to manually build the project using
pnpm build
before running the tests.
The deployment points to https://vault.petra.app. The application is deployed onto Vercel using the main
branch. Deployments are automatically triggered when a push is made to the main
branch.
Contributions are welcome! Please refer to the CONTRIBUTING.md file for more information.