Sway

For shoppers

You use Sway through a shopping agent that supports it. You install nothing from Sway and connect no wallet. You tell your agent what you want to buy, and when a rebate is ready you tell it where to send the USDC.

What your agent does for you

  1. It keeps your preferences on your device: size, width, the most you will pay, the brands you already buy from, and any brand you value more than others. It encrypts them there, with a key made for this one purchase, before anything is sent.
  2. Brands' sealed offers are scored against your encrypted intent inside Arcium's MPC network. Your three best offers come back sealed to your device, and only your agent can open them.
  3. You choose an offer. The agent buys through the store's normal checkout at the offer's price and attaches a Sway voucher.
  4. The agent keeps the checkout receipt on your device and reports only a hash of it to Sway.
  5. When the rebate unlocks, the agent claims it to the address you choose.

What you see

For each offer: the brand, the product price and the rebate. Offers are ranked by rebate minus price, plus any bonus you gave a brand to say you prefer it. The bonus only ranks offers; nobody pays it.

After a purchase, your agent can show each rebate's amount, its unlock time and its state.

StateMeaning
pendingThe store's receipt is being verified
lockedVerified and held in escrow until the unlock time
claimableReady to claim
claimingA claim is on its way
claimedPaid to your address
refundedYou returned the product inside the lock, and the store cancelled the rebate
disputedA dispute is open for this purchase
failedThe purchase did not verify against your offer

What stays private

PartyLearnsNever learns
Brands that were not chosenNothingThat your intent existed
The brand you bought fromThe order, at purchase, as any store wouldYour other preferences, rival offers, your wallet
SwayCategory, timing, agent key, conversion amountsYour intent's contents, offer rules, which brands made your top three
The public chainCampaign spend per conversionWho received a rebate, unless claims are linked

When your rebate unlocks

The lock starts when your purchase is verified and lasts the number of days the brand set on its campaign. That is never shorter than the store's return window. If you return the product before the unlock time, the store cancels the rebate and it shows refunded. After the unlock time the rebate is yours to claim.

Claiming to any address

Give your agent any Solana wallet address: one you already use or a new one. The agent signs the claim with the key it made for that purchase, and the claim pays the full rebate to that address in USDC. Sway's relayer pays the transaction fee, and if the address has no USDC account yet, the claim creates one.

Each purchase has its own claim key, so separate purchases are not linked to each other. Sending several claims to the same address links them, and that choice is yours. A claim is signed for one address; to change it, the agent waits for the earlier signature to expire, 120 seconds by default.

The claim key exists only in your agent's device keychain, and Sway keeps no copy. Claim from the same device and account your agent used to shop.

When no brand offer fits

If no brand offer matches your intent, or matching does not finish in two attempts, your agent shows no Sway offer for that purchase. Cashback from affiliate commissions for such purchases is built into Sway and turns on when the deployment connects an affiliate network.

Opening a dispute

If something went wrong with a purchase, ask your agent to open a dispute. It signs the dispute with the claim key for that purchase, so only your device can open it.

ReasonWhen to use it
MISSING_CONVERSIONYou bought from your offer, but no rebate appeared
INCORRECT_AMOUNTThe rebate differs from the offer
UNEXPECTED_REFUNDThe store cancelled the rebate although you kept the product

The dispute carries a hash of the receipt your agent kept and an encrypted reference to it; the receipt itself stays on your device. Give your agent an address for compensation when it opens the dispute. The Sway operator reviews the case on the operator page and records an outcome with a hash of its resolution note. If it is resolved in your favor, the operator's Config admin wallet signs a slash_bond transaction that pays your compensation address from the store's bond, up to 50 USDC per case.

Each purchase takes one dispute. A dispute opens within the deployment's dispute window, which runs from the purchase's unlock time; for a missing rebate it runs from the purchase deadline plus the campaign's lock.

Dispute stateMeaning
openReceived
under_reviewResolved in your favor; the bond payment is being made
resolved_userPaid to your compensation address
resolved_merchantResolved in the store's favor
rejectedNot upheld