This guide enables new developers to set up and run Aura Vault Protocol locally within 30 minutes.
- OS: macOS, Linux, or Windows (WSL2)
- Rust: 1.70+ (install)
- Node.js: 18+ (install)
- Docker: 20.10+ (install) - optional for local Stellar network
- Stellar CLI: Latest (install)
git clone https://github.com/soterika/aura-vault-protocol.git
cd aura-vault-protocol
# Install Rust target for WASM
rustup target add wasm32-unknown-unknown
# Install Node dependencies
npm install
cd ui && npm install && cd ..# Backend
cp backend/.env.example backend/.env.local
# Frontend
cp .env.staging.example .env.local# Stellar testnet (default)
STELLAR_NETWORK=testnet
STELLAR_RPC_URL=https://soroban-testnet.stellar.org
ADMIN_KEYPAIR=S... # Your testnet keypairGet a testnet keypair:
stellar keys generate test-key --network testnet
stellar account fund GABC... # Fund with XLM from faucetcd aura-vault
cargo build --target wasm32-unknown-unknown --release
cargo test # Verify all 22 tests passExpected output:
test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured
# Set network
export STELLAR_NETWORK=testnet
# Upload WASM
WASM_HASH=$(stellar contract upload \
--wasm target/wasm32-unknown-unknown/release/aura_vault.wasm \
--source test-key \
--network $STELLAR_NETWORK \
--output json | jq -r '.wasm_id')
echo "WASM Hash: $WASM_HASH"
# Deploy instance
CONTRACT_ID=$(stellar contract deploy \
--wasm-hash "$WASM_HASH" \
--source test-key \
--network $STELLAR_NETWORK \
--output json | jq -r '.contract_id')
echo "Contract: $CONTRACT_ID"
# Initialize (use your account public key)
stellar contract invoke \
--id "$CONTRACT_ID" \
--source test-key \
--network $STELLAR_NETWORK \
-- initialize \
--admin "GABC..." \
--underlying_token "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4"cd ui
npm run devOpen http://localhost:5173 in your browser.
# Contract tests
cd aura-vault && cargo test
# Frontend unit tests
cd ui && npm test
# Accessibility tests
cd ui && npm run test:a11y
# Load tests (requires k6)
cd ui && npm run test:loadcd ui
npm run storybook
# Opens http://localhost:6006cd ui && npm run build # Includes TypeScript checkcd ui && npm run lint # ESLint
cd aura-vault && cargo clippy # Rust linting# Clear contract storage on testnet
stellar contract invoke \
--id "$CONTRACT_ID" \
--source test-key \
--network testnet \
-- reset # If contract has reset function
# Or redeploy to new contract ID# Check total assets
stellar contract invoke \
--id "$CONTRACT_ID" \
--network testnet \
-- total_assets
# Check user balance
stellar contract invoke \
--id "$CONTRACT_ID" \
--network testnet \
-- balance_of \
--address "GABC..."# Use Stellar Expert or Dashboard
# https://testnet.steexp.com/contract/$CONTRACT_ID# Clean build
cd aura-vault
cargo clean
cargo build --target wasm32-unknown-unknown --release# Check for dependency issues
cargo update
cargo test --verbose- Verify token contract ID is valid on testnet
- Check admin keypair is funded with XLM
- Confirm network is set to testnet
- Verify
VITE_STELLAR_NETWORK=testnetin.env.local - Check contract ID is correct
- Clear browser cache (Ctrl+Shift+Delete)
-
Install extensions:
- Rust Analyzer
- Soroban (Stellar)
- ESLint
- Prettier
-
Create
.vscode/settings.json:
{
"rust-analyzer.checkOnSave.command": "clippy",
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}# Install rust-analyzer
rustup component add rust-analyzer
# LSP config for Rust
# See nvim-lspconfig documentation- Read INTEGRATION_GUIDE.md for API details
- Check ui/stories/ for component examples
- Join Stellar Dev Discord
- Review GOVERNANCE_IMPLEMENTATION.md for multi-sig
- Errors: Check logs in
.env.localfor network/contract issues - Contract: Read aura-vault/README.md
- UI: See ui/README.md and Storybook components
- Community: Post in Stellar Developers forum