tool calls

A website asks the wallet to do something through a tool link. The page never gets spend power. The wallet shows the request, and you decide. Tool 001 asks to spend. Tool 002 asks to share a view-only key.

pay with the browser wallet (tool 001)

On a checkout page, the payer clicks pay with browser wallet. The content script blocks the navigation and sends the request to the wallet. The send plate switches to the standard transaction view. The amount and the address are filled in and locked. They come from the tool link:

destination.tld/#monerochan001_amount_0.018060647654824902_address_4Jxz3bZeGQj9qZeWBd2XPyJCyNQaf...7h1

  1. click the pay link on the checkout page
  2. the send plate opens with the payment link block: context site, destination site, amount, click time
  3. move the safety slider to fire
  4. click SEND only if you want this payment sent

The address check asks the link host whether it recognizes the address. valid means the host claims it. It does not prove the shop name, and the site checks the amount itself, later, by scanning the chain. A new request always replaces the older open request of the same kind, so two payment links never stack on the plate.

view-only wallet share (tool 002)

The merchant dashboard offers Add Wallet. Clicking it opens a share request in the wallets plate. Accepting posts the view key to that site, so it can watch incoming payments. It never gives the spend key. The site still cannot move funds.

  1. on the paymentlinks dashboard wallets page, click Add Wallet
  2. the wallets plate shows view-only wallet share with the slot number
  3. click ACCEPT only if you want the view key posted to that site
  4. click DISMISS to refuse

The request is valid only when the page and the link belong to the same site. The view key is posted to the link origin.

The shared wallet is derived from the seed for that slot and domain (see seed derivation).

no wallet installed

A visitor who clicks a payment link without the extension does not get an error page. The site serves a fallback that explains the missing wallet and links the install page, with a way back to the checkout.

action log

Every request is recorded with its state. The action log page lists the newest five per page: what the site asked for, the amount, the time, and whether it is in progress, done, failed, or dismissed. A failed send keeps its error text. The tabs split the list into history, success, discarded, and txlog, which shows every send attempt from the wallet cache. Open it from the send plate or the wallets plate with the actionlog control.

wallet

The wallet lives in the browser side panel. Balance on top, plates below. Destructive actions are only possible when the safety slider is in the fire position. Treat the open wallet like a loaded gun.

safety slider

The slider sits at the top. safe (left) locks sending: both the normal send and coin control return immediately while the knob is on safe, so a stray click on a website cannot move funds. fire (right) arms the send buttons.

  1. click #safe to lock, #fire to arm
  2. the knob moves and window.unlocked flips

The slider is the safety catch. It stays on safe so logging in to a website can never send your life savings.

safe, then fire, then safe

balance, amount and pending

The fire label shows the unlocked amount, the part a send can use. Under it, a second line shows pending funds: received or change outputs that are not spendable yet. Change from a send sits here until it unlocks.

balance view
safe position, 34.982 XMR unlocked, 33.982 pending

keyboard shortcuts

Keys are the first letter of the target. In the wallet, s r h c w open send, receive, history, connection, and wallets. In the action log, h s d t switch the history, success, discarded, and txlog tabs, and the arrow keys turn pages. The page field jumps on every digit typed.

standard send

The send plate has an amount field and an address field. Fill them, arm the slider, press SEND. The panel only posts a message; the worker picks the inputs, builds, signs, and relays. The line under SEND shows the result of the last attempt.

  1. click SEND in the lower menu to open the plate
  2. fill the amount and the address
  3. slider to fire, then click SEND
  4. RESET hides the status line on this plate. History keeps the transaction
empty form, then filled, then sent, then the success line
empty send plate
the empty send plate, slider on safe

coin control

Click coin control on the send plate to replace the simple fields. You choose the inputs and the outputs yourself. The link turns into standard transaction. Click it to go back.

  1. output rows: one row of amount + address to start, add output adds one, remove deletes a row (the first row too)
  2. select input: tick the outputs to spend; the worker spends exactly those
  3. external sweep: one destination address only, no amount field; it receives the selected inputs minus the fee. No selection sweeps every spendable input
  4. a failed send that got as far as signing shows a rebroadcast control that relays the stored transaction

Opening coin control retires an open payment-link request. The two ways to configure a transaction never run at the same time.

open, then add output, then the input list, then tick, then sweep
coin control open
coin control open with one output row

receive

The receive plate shows the address a payer uses, with NEW ADDRESS and COPY. Open a subaddress row to see its details. Those are all subaddresses. If you want to know the primary address you have to inspect the files in the developer settings in the connections plate.

receive plate
receive plate
receive details
subaddress details open

history

The history plate lists every transaction, including sends hidden by RESET on the send plate. show details opens the hash, the inputs used, the output amounts, and the change.

history plate
history list
history details
transaction details open

connection

The connection plate holds the node URL and the scan start height. TEST CONNECTION queries the node before you trust it, SAVE applies, RESET puts the fields back to the saved values. An empty start height means the chain tip at save time; 0 scans from the start.

connection plate
connection plate
connection test result
get_info response success

developer settings

Under the connection plate. Export a backup (wallets.json, contains secrets, click only if you want it on this computer), wipe every wallet file by typing DELETE ALL FILES (canonical path to reset wallet), inspect the wallet files, and drive a local regtest node: mine 1 block to this wallet, 60 blocks for confirmations, or 1000 blocks for decoys.

Log level (off / console / file / both) and the per-function log switches sit in the same section. A new wallet starts with logging off; a level change restarts the worker. The file list refreshes about once a second.

developer settings
developer settings open
wallet files
wallet file list
regtest buttons and log controls
regtest mining and log controls

wallets

The wallets plate lists the saved wallet routes; the selected one is the wallet send and receive use. advanced options opens Remove Wallet Route and Restore Wallet Route. Removing deletes the route and its cache files. Funds stay recoverable from the seed phrase, which rescans them.

A catastrophic reorg (a node restart on regtest does this) replaces the top area with a warning. Reset the wallet, then recover from the seed phrase or generate a new one.

wallets plate with advanced options
advanced options open
wallets plate
advanced options closed

seed derivation

One seed phrase backs every wallet. The secret comes from the phrase plus a readable route (identity/domain/wallet_type/wallet_slot, default main/no_domain/single/0). This is human readable similar to a URL. It is not as cryptic as other derivation standards, with the stated goal of fostering a more direct relation with the seedphrase and the wallet key material. Users should view the wallet not as black box, but as a simple tool that helps them access the secrets that are understandably derived from the seed. The phrase runs through the BIP39 seed function with the route, the offset passphrase, the coin name, and the key type to derive the actual keypair in the wallet.

Readable routes keep each wallet in its context: a shared view key belongs to one slot and one domain, so recovery cannot leak it to the wrong service. One phrase also bundles the multisig escrow shares (spend, comms, hotkey) under one route. more info