Use
Wallets
Two wallets ship with the project.
The desktop program is the Pdc executable from release v2.2.0. That GUI build uses Qt 6. It runs a node and a wallet together, which is what staking needs: the wallet has to be online and synced.
simplewallet is the command-line wallet. It talks to a daemon over RPC. Use it on a server, in scripts, and when you want the command list in front of you.
Secrets
| Command | What it prints |
|---|---|
show_seed |
The 24-word recovery phrase |
spendkey |
The secret spend key |
viewkey |
The secret view key |
tracking_seed |
For an auditable wallet, the seed a reviewer can use |
address |
The public Px address |
integrated_address |
Encode or decode an iP address and a payment id |
Anyone with the seed or the spend key can spend the funds. Anyone with the view key can recognize incoming outputs. Treat all three as secrets. The tracking seed is a deliberate exception: you give it to an auditor and to nobody else.
Everyday commands
| Command | Purpose |
|---|---|
refresh |
Pull new transfers and recompute the balance |
balance |
Show balances for whitelisted assets. balance raw also shows assets outside the whitelist |
transfer |
Send. The form is transfer <mixin_count> [asset_id:]<address> <amount> ... [payment_id] |
incoming_transfers |
List incoming outputs, optionally available or unavailable |
list_recent_transfers |
The latest transfers, up to 1,000, with offset and count |
payments |
Find transfers by payment id |
save |
Write the wallet file |
resync |
Forget cached transfers and scan again |
bc_height |
Node height |
wallet_bc_height |
Height the wallet has scanned |
transfer still takes a mixin count. After hard fork 4 the protocol requires 15 decoys. Passing a smaller count does not make the transfer public. The node enforces the mandatory set.
A payment id is an optional hex string. An integrated address carries one inside the iP string so the sender does not have to paste it separately.
Watch-only and offline signing
save_watch_only <filename> <password> writes a wallet that can see funds and prepare transactions. It cannot sign them.
The signing flow is:
- The watch-only wallet prepares an unsigned transaction.
sign_transfer <unsigned_tx_file> <signed_tx_file>signs it on the machine that holds the spend key.submit_transfer <signed_tx_file>broadcasts the signed transaction.
Assets from the command line
| Command | Who can run it |
|---|---|
deploy_new_asset <json> |
Creates an asset. This wallet becomes the maintainer |
emit_asset <asset_id> <amount> |
Mints more units. Maintainer only |
burn_asset <asset_id> <amount> |
Burns units the maintainer holds |
update_asset <asset_id> <metadata> |
Updates the descriptor metadata |
transfer_asset_ownership <asset_id> <new_owner_public_key> |
Hands the maintainer role to another key |
add_custom_asset_id |
Show an asset even if it is not on the public whitelist |
remove_custom_asset_id |
Drop that local approval |
Deploying, minting, and burning are explicit chain operations. They are not hidden the way a later wallet transfer of that asset is hidden.
Tor relay
tor_enable and tor_disable switch relaying of transactions over Tor. The wallet registers this relay as enabled by default. Disabling it changes the path your transaction takes to the network. It does not change what the chain stores.
Files
Wallet files use signature WALLET_FILE_SIGNATURE_V2. The serialization version in this tree is 168, and the oldest supported version is 165. Copy the wallet file and keep the seed. The file without the password is not a backup you can restore on an empty machine if you also lost the phrase and the password.