PQ Doge Wallet

The first Post Quantum Secure Dogecoin wallet
PQ Wallet builds and sends Dogecoin transactions with standard ECDSA authorization and optional Phase-1 post-quantum commitments. Commitment outputs follow canonical tagged OP_RETURN format (6a24 + FLC1/DIL2/RCG4 + 32-byte commitment). The wallet includes educational verification flows for TX_C/TX_R carrier model and uses sendtx for P2P broadcast (wallet-to-network peers, like Dogecoin Wallet’s bitcoinj path — not JSON-RPC to a local Core node), with SPV and embedded mempool tracking for visibility. spvnode watches every P2PKH address in the wallet; the dashboard can full-rescan or roll back the local header DB and wallet scan state when repair is needed.

Latest version

v0.0.43 0.0.62

Review source

Use the tabs to switch between the manifest, Nix build file, and other text sources from the latest tag.

Latest release manifest (for manual review).

{
    "manifestVersion": 1,
    "meta": {
        "name": "PQ Doge Wallet",
        "version": "0.0.62",
        "logoPath": "logo.png",
        "shortDescription": "The first Post Quantum Secure Dogecoin wallet",
        "longDescription": "PQ Wallet builds and sends Dogecoin transactions with standard ECDSA authorization and optional Phase-1 post-quantum commitments. Commitment outputs follow canonical tagged OP_RETURN format (`6a24 + FLC1/DIL2/RCG4 + 32-byte commitment`). The wallet includes educational verification flows for TX_C/TX_R carrier model and uses `sendtx` for P2P broadcast (wallet-to-network peers, like Dogecoin Wallet’s bitcoinj path — not JSON-RPC to a local Core node), with SPV and embedded mempool tracking for visibility. `spvnode` watches every P2PKH address in the wallet; the dashboard can full-rescan or roll back the local header DB and wallet scan state when repair is needed.",
        "upstreamVersions": {
            "Go": "1.24",
            "libdogecoin": "4bd9b495f3088081d5c39c91dfd3eea6a53634ab (PQC carrier / FLC1 DIL2 RCG4) + liboqs where applicable"
        }
    },
    "config": {
        "sections": [
            {
                "name": "HTTP",
                "description": "Web UI and JSON API bind address is 0.0.0.0 inside the container.",
                "fields": [
                    {
                        "name": "PUBLIC_PORT",
                        "label": "HTTP port",
                        "type": "text",
                        "default": "33880"
                    }
                ]
            },
            {
                "name": "Chain & SPV",
                "description": "libdogecoin `spvnode` syncs headers and watches every address in the wallet. Log tail parsing drives chain tip and peer hints in the dashboard.",
                "fields": [
                    {
                        "name": "SPVNODE_ENABLE",
                        "label": "Start spvnode after wallet is created (1=yes, 0=no)",
                        "type": "text",
                        "default": "1"
                    }
                ]
            },
            {
                "name": "Mempool watcher (embedded)",
                "description": "Optional tuning for the in-process P2P mempool relay watcher (same semantics as MemeTracker `MTR_*` env). Data lives under `PQ_STORAGE_DIR/mempooltracker/`. Default parallel workers is 1 to limit RAM on small hosts; set `MTR_P2P_PARALLEL` higher if you have headroom.",
                "fields": [
                    {
                        "name": "MTR_P2P_PORT",
                        "label": "Dogecoin P2P port (mainnet default 22556)",
                        "type": "text",
                        "default": ""
                    },
                    {
                        "name": "MTR_P2P_PARALLEL",
                        "label": "Parallel peer workers (1–8, empty = default 1)",
                        "type": "text",
                        "default": ""
                    },
                    {
                        "name": "MTR_LIST_LIMIT",
                        "label": "Stored mempool tx rows per address (empty = default)",
                        "type": "text",
                        "default": ""
                    }
                ]
            }
        ]
    },
    "container": {
        "build": {
            "nixFile": "pup.nix",
            "nixFileSha256": "984d1f19d603ee20527bd18f6b8ea673d2f8db4244fb53fda7a72bb210e6b547"
        },
        "services": [
            {
                "name": "pq-wallet",
                "command": {
                    "exec": "/bin/run.sh",
                    "cwd": "",
                    "env": null
                }
            }
        ],
        "exposes": [
            {
                "name": "http",
                "type": "http",
                "port": 33880,
                "interfaces": [
                    "pq-wallet-http"
                ],
                "listenOnHost": true,
                "webUI": true
            }
        ],
        "requiresInternet": true
    },
    "interfaces": [
        {
            "name": "pq-wallet-http",
            "version": "0.0.62",
            "permissionGroups": [
                {
                    "name": "PQ Wallet HTTP",
                    "description": "Web UI and wallet API",
                    "severity": 2,
                    "routes": [
                        "/",
                        "/logo.png",
                        "/static/*",
                        "/api/*"
                    ],
                    "port": 33880
                }
            ]
        }
    ],
    "dependencies": [],
    "metrics": [
        {
            "name": "uptime_seconds",
            "label": "Uptime",
            "type": "int",
            "history": 30
        }
    ]
}