Troubleshooting
Symptoms, causes and fixes for the problems people actually hit.
The intent isn't listed in your metadata.json uses. Each entry must be an
object: { "intent": "lez.wallet.connect" }, not a bare string. Rebuild and
reinstall the module.
A wallet sheet is still open for your app, or an earlier request timed out
and the wallet hasn't answered yet. Finish or cancel it in the wallet. Handle
the late answer with onLateResult (guide).
The SDK isn't ready yet, or it's being rebuilt after a network switch. Start
work in onApiChanged: if (api) …, and read kit.api fresh each time.
The wallet is locked, or not set up. Ask the user to open Logos Kit Wallet and unlock it.
Your proposal names a network the wallet isn't on. With followWallet (the
default) this only happens during a switch: retry after onApiChanged.
It isn't stuck: a private proof takes about 4–7 minutes on an M-series Mac and
needs ~4.3 GB of free memory. Only one proof runs at a time. The status shows
proving.phase and proving.progress; the user can close the sheet.
LEZ 0.3 includes failed transactions, so the wallet only says success when it
can prove the effect. Re-read the balance or record you expected to change,
and show "not confirmed yet" until then (Transactions).
Logos Kit's testnet faucet gives each account one drop an hour, each IP five
an hour, and 60 an hour in all. The result carries retryAfterSeconds; show
a countdown.
Transactions on the official testnet can take a minute or more to be included. The wallet waits up to about 6 minutes before it reports a send as not included (Transactions).
SDK amounts are lepta, not LGO (1 LGO = 10^9 lepta). Turn what the user typed
into lepta with kit.sdk.parseUnits(text, 9), and show amounts with
kit.sdk.formatUnits(amount, 9).
Wallets from 0.2.0 recognise only the v0.3.0 testimonial image, deployed on
the official testnet. The preview network's program isn't that image. Post on
the testnet (Networks).
The sandbox blocks remote and data: images and anything outside your
module's folder. Bundle assets in the module and load them with
Qt.resolvedUrl("…") from inside components.
Basecamp runs Qt 6.9's JavaScript engine: short is reserved, and there is no
BigInt, Intl, regex lookbehind or named groups. Keep amounts as strings and
use kit.sdk.parseUnits and kit.sdk.formatUnits.
Basecamp shows initials for modules installed with lgpm during development.
Check the icon after a catalog install before changing anything.
Still stuck? Open an issue.