Receipts & data on disk

Everything OpenSwap knows lives on your machine. Nothing is uploaded and there is no telemetry. This page explains exactly what's written, where, and how to read or delete it.

Where things live

| Path | What's in it | | --- | --- | | ~/.local/share/openswap/receipts/ | One JSON file per swap | | ~/.config/openswap/ | Settings; the optional encrypted signer wallet | | ~/.cache/openswap/ | The asset list cache (refreshed daily) | | Your OS keychain, entry openswap-cli | Your API key, if you ran auth login | | ~/.local/share/openswap/test-mode/ | The practice sandbox, fully separate |

Files are written atomically (a crash can't corrupt them) with permissions only you can read. Receipts never contain secrets — no keys, no passphrases.

What's in a receipt

A receipt is the durable record of one swap, written before the payment screen appears — so nothing is lost if your laptop dies mid-swap. Print any receipt as JSON with openswap receipts export <id>.

| Field | Plain-English meaning | | --- | --- | | receipt_id | The swap's id: os_… for real swaps, ost_… for practice ones | | environment | mainnet (real) or simulated (test mode) | | quote_id, protocol | Which quote you locked, and which provider ran it | | from_asset, to_asset | What you swapped, precisely identified | | amount_display, amount_base_units | The amount, both human-readable and exact | | expected_out_display, expected_out_usd | What the route promised you'd receive | | destination_address | Where the swapped funds go | | refund_address | Where funds return if the swap fails | | deposit.deposit_address | The address you paid | | deposit.expires_at | The payment deadline (always at least 20 minutes) | | deposit.payment_uri, deposit.memo, deposit.network | Helpers your wallet used | | tx_hashes.source / .destination / .refund | On-chain transactions, filled in as tracking sees them | | last_state, last_checked_at, last_error | The latest tracking snapshot | | schema_version | The receipt format version — fields are only ever added |

To check on any receipt later:

openswap status <receipt_id>          # one look
openswap status <receipt_id> --watch  # follow it until it finishes

A swap always ends in one of four states: success, failed, refunded, or deposit_expired (you never paid the deposit — nothing moved).

Removing everything

npm uninstall -g openswap
rm -rf ~/.local/share/openswap ~/.config/openswap ~/.cache/openswap

Then delete the openswap-cli entry from your keychain if you stored a key. That's the entire footprint — gone.