Skip to content
Open app

Payments and inventory

AI-generated

The solver reserves a real Monero payment before signing its Ethereum bid, so concurrent bids cannot reuse the same wallet inputs.

Wallet RPC constructs a transfer with do_not_relay. The solver cross-checks the raw transaction, relay metadata, keys, outgoing proof, fee, recipient, and selected output. It records input key images durably, freezes them, and verifies the reservation.

One output must cover the full quote. Each swap needs a distinct payment transaction ID and selected output. Startup discards/reprices uncommitted preparations; a durably signed bid retains its exact payment identity.

First relay requires a confirmed post-auction award, unchanged winner/terms, and the configured remaining payment time—600 seconds in the example. The solver rechecks immediately before relay_tx; the wallet uses its own configured daemon.

An ambiguous response may mean the payment escaped. Recover the same transaction. Once relay is possible, the first-payment cutoff no longer permits abandonment; the settlement deadline governs recovery.

If the payment remains unconfirmed after the trusted pre-relay tip advances by two blocks, the solver restores the stored transaction to the trusted daemon if absent and propagates it through fallback daemons.

One-block inclusion and wallet/daemon consistency establish payment confirmation. The solver then collects inclusion data and an existing qualifying work block within 64 links. It does no mining.

Maintain independent mature spendable outputs plus fee headroom. Frozen inputs and immature change cannot fund new candidates. Ordinary output maturity is ten blocks, approximately 20 minutes at the target interval.

Maintenance splits one suitable free mature output into 16 self outputs using sweep_single. The example target is 100 confirmed unspent outputs, range 1–120; a split adds 15 and can overshoot by 14. Locked confirmed outputs count toward the target. Maintenance may finish after inclusion plus one successor while outputs still mature.

Only one unresolved split is allowed, and payment obligations take priority. Keep reservations for possibly relayed payments even after Ethereum settlement or expiry; follow recovery.