💼Web Wallet

A Flutter web wallet for MaryJaneCoin with PIN + biometrics, BIP39 seed phrase, custom Electrum servers, and a built-in Solana bridge tab. Live at wallet.maryjanecoin.net.

What this wallet is

The MaryJaneCoin web wallet is a Flutter web app derived from the Peercoin Flutter wallet, branded for MARYJ. It connects to the chain via ElectrumX SPV — no full node required. You can use it from any browser, install it as a PWA on iOS, or run the same codebase as the Android/iOS native app.

PropertyValue
Connection modeElectrumX SPV (light client)
Seed standardBIP39, 12–24 words
AuthPIN required, biometrics optional
Bridge integrationBuilt-in tab, connects to Phantom / Solflare
Multi-walletYes — switcher at /wallet-list
Custom ElectrumYes, per-wallet under server settings

First-time setup

  1. Visit wallet.maryjanecoin.net

    The Flutter app loads (≈6MB main bundle) and walks you through onboarding:

    1. setup-language — pick your language
    2. setup-legal — read and accept the license switch
    3. setup-auth — choose PIN, optionally enable biometrics
    4. setup-feeds — pick price feed source (or skip)
    5. setup-create-wallet OR setup-import-seed
  2. Create a new wallet

    Drag the seed-length slider (12, 15, 18, 21, or 24 words). 12 is fine for normal use; 24 is paranoid-grade. Tap Generate.

  3. Back up the seed phrase

    The wallet shows your BIP39 seed words one at a time. Write them down with pen and paper, in order. Do not screenshot. Do not store in a password manager. Do not paste anywhere.

    This is your only backup Lose the seed phrase = lose your coins. Have it leaked = anyone can drain you. The wallet enforces a re-entry quiz to make sure you wrote it down correctly.
  4. Set a PIN

    Required. Used to unlock the wallet and to sign transactions. Optionally enable biometrics on devices that support it.

  5. You're at the main screen

    Bottom nav has 4 tabs: Receive · Transactions · Address Book · Send. Top-level screens like Bridge, Wallet List, and Settings live in the menu.

Restoring an existing wallet

  1. From onboarding, choose Import Seed instead of Create.
  2. Type each word from your backup. The wallet validates on the fly — input less than 12 words and you'll get import_seed_error_1.
  3. Set a fresh PIN (independent of the original wallet's PIN — the seed is what matters).
  4. The wallet rescans via Electrum and your balance/history populates within a few seconds.

Receiving MARYJ

  1. Tap the Receive tab
  2. The current address (M-prefix) is shown with a QR code
  3. Tap Show QR for a larger QR, or Share to send via OS share sheet
  4. Optionally tap Enter Amount to encode a specific MARYJ amount into the QR — Phantom-style
  5. Add a label hint if it's tied to a specific person/use case (helps with the privacy hint)
Address rotation Tap New Address to generate a fresh receive address. Reusing addresses links your transactions in the public graph. New address per payment = better privacy, even on the transparent layer.

Sending MARYJ

  1. Tap Send
  2. Paste or scan the recipient's M-address
  3. Enter the amount (toggle to fiat display via the price feed if helpful)
  4. Set the fee — minimum is 0.420 MARYJ
  5. (Optional) attach an OP_RETURN with up to 80 bytes of metadata via send_op_return
  6. (Optional) add multiple recipients via send_import_csv
  7. Review on the confirm screen — send_total shows amount + fee + change
  8. Enter PIN (or biometric) to sign and broadcast

The built-in Bridge tab

The web wallet has a bridge directly inside it — no need to bounce out to bridge.maryjanecoin.net. Open the Bridge screen from the menu.

  1. Connect a Solana wallet

    Tap Connect Phantom or Connect Solflare. The wallet uses @solana/web3.js loaded from CDN to talk to your Solana wallet directly.

  2. Verify your SPL MARYJ balance

    Shown as Your SPL MARYJ Balance. Pulled live from the Solana mainnet RPC.

  3. Set the bridge amount

    Type the amount in the Amount to Bridge field.

  4. Confirm your mainchain receiving address

    Auto-filled from your active wallet — labeled Your Mainchain Receiving Address. You can override, but the default is the safe choice.

  5. Tap Bridge SPL MARYJ → Mainchain

    Phantom (or Solflare) pops up. Approve the SPL Transfer + Memo transaction. The Memo carries MARYJ:<your-mainchain-addr> so the bridge knows where to deliver.

  6. Watch confirmation

    Toast: "Transaction Sent!", then a View on SolScan link, and a heads-up: "Your mainchain MARYJ will arrive in ~45 min". The Bridge Transactions history at the bottom tracks status.

SPL mint now wired The bridge tab has been updated with the real SPL mint: MARYJkS2kHxmVkQp8baNUL7d3R1pddLr65GgsArJAYY. The mint goes live on 2026-04-20 (4/20) via pump.fun BYO-keypair launch. Until 4/20 the bridge tab shows a zero SPL balance — that's expected. After 4/20 balance reads + send operations work end-to-end. The escrow ATA is initialised post-launch; if you're building wallet code against this, keep the BRIDGE_WALLET constant as a placeholder until we share the escrow address.

Settings

SettingWhat it does
ThemeLight / dark / system
LanguageSearchable list, all UI strings translated
BiometricsToggle Face ID / fingerprint to unlock
Change PINReplace your unlock PIN (seed unaffected)
Default walletWhich wallet opens at app launch (multi-wallet)
Wallet orderingDrag-reorder the wallet list
NotificationsPush alerts for incoming transactions
Price feedSearchable list of fiat conversion sources
ExperimentalHidden feature flags (use at your own risk)
Reveal seedRe-displays your BIP39 phrase (PIN required)
Server settingsPer-wallet custom Electrum endpoint — point at your own ElectrumX

Custom Electrum server

If you don't want to trust the default Electrum endpoints, run your own ElectrumX node and point the wallet at it:

  1. Open Server Settings from the per-wallet menu
  2. Tap Add Server
  3. Enter host:port (e.g. my-electrum.example.com:50012) and select SSL/TCP
  4. Move your custom server to the top of the list — the wallet tries them in order
  5. Tap Test Connection — should return the chain tip height

Import a paper wallet (sweep)

  1. From the per-wallet menu, choose Import → Paper Wallet
  2. Either scan the private-key QR with your camera, or type the WIF
  3. The wallet calculates the address, queries the balance via Electrum, and offers to sweep
  4. Tap Sweep — funds move into your active wallet at a fresh address

If the WIF is BIP38-encrypted (starts with 6P), use Wallet Details on paper.maryjanecoin.net to decrypt first.

Multi-wallet setup

Open Wallet List to manage multiple wallets in the same app — useful for separating cold/hot, business/personal, or for using one wallet exclusively with the bridge.