A non-custodial bridge for converting Dash Core funds to Dash Platform credits.
- Client-side only - all cryptographic operations happen in your browser
- Supports both testnet and mainnet (via
?network=mainnetURL parameter) - HD wallet support with BIP39 mnemonic generation
- QR code generation for deposit addresses
Web apps can add a Create Dash identity button. The bridge runs the identity flow in a popup or iframe and returns only the new identity ID. Keys never leave the bridge window.
<script src="https://bridge.thepasta.org/widget.js"></script>
<script>
button.onclick = async () => {
const { identityId } = await DashBridge.createIdentity({ network: 'testnet', appName: 'My Dapp' });
};
</script>Apps can also offer Sign in with Dash: the user signs a short message in
the bridge with one of their identity's authentication keys, and the app's
server checks it with verifyLogin from widget-verify.mjs.
See docs/widget.md for the integration guide, the message
protocol and the security model. Try it at /widget-demo.html.
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewThis repository includes two E2E modes:
- Deterministic UI mode (CI-safe): runs against
?e2e=mockwith no live funds/keys required. - Optional live testnet mode: runs against testnet endpoints with real identity/key validation and realistic click-through.
npm run test:e2e:install# Headless
npm run test:e2e
# Headed (local debugging)
npm run test:e2e:headedLive suite is opt-in and skips when required variables are missing. Never paste real private keys directly inline in shell commands. Inline secrets are saved in shell history.
# Safer approach: store sensitive values in a protected env file and source it
cat > .env.playwright-live <<'EOF'
PW_E2E_LIVE=1
PW_LIVE_TOPUP_IDENTITY_ID=<44-char-base58-id>
PW_LIVE_DPNS_IDENTITY_ID=<44-char-base58-id>
PW_LIVE_DPNS_PRIVATE_KEY_WIF=<wif-auth-key>
PW_LIVE_MANAGE_IDENTITY_ID=<44-char-base58-id>
PW_LIVE_MANAGE_PRIVATE_KEY_WIF=<wif-master-key>
EOF
chmod 600 .env.playwright-live
set -a
source .env.playwright-live
set +a
npm run test:e2e:liveEnvironment variables used by the live suite:
PW_E2E_LIVE: set to1to enable live tests.PW_LIVE_TOPUP_IDENTITY_ID: identity ID used for top-up navigation check.PW_LIVE_DPNS_IDENTITY_ID: identity ID used for DPNS key validation.PW_LIVE_DPNS_PRIVATE_KEY_WIF: DPNS AUTHENTICATION key for that identity. Prefer CRITICAL; HIGH is also accepted.PW_LIVE_MANAGE_IDENTITY_ID: identity ID used for key-management validation.PW_LIVE_MANAGE_PRIVATE_KEY_WIF: MASTER key for identity-management validation.PLAYWRIGHT_BASE_URL(optional): override app URL if running against a pre-started server.PLAYWRIGHT_HOST/PLAYWRIGHT_PORT(optional): host/port used by Playwright-managed dev server.
This project automatically deploys to GitHub Pages on push to main via GitHub Actions.
MIT