Refunds
Bidder deposits are refunded automatically at settle. There's no claim button. Once the auction enters a terminal state, the WIP is back in your wallet.
When you get a refund
You receive your deposit back in full when:
- You lose — the winning bid was higher than yours. Settled.
- No bid cleared the revealed reserve — every bidder is refunded. Ended (no winner). Note: the reserve is sealed until settle, so you won't know in advance whether this outcome applies to your bid.
- No bids were placed — the auction reaches
ExpiredEmpty. (You can only receive a refund if you bid, but this flavor is included for completeness.) - Your reveal was invalid — your signature didn't recover, your amount exceeded your deposit, or your ciphertext was missing. The bid is skipped at settle and your full deposit is refunded.
You receive your overpayment back if you win:
- You win — license token mints to your wallet AND the contract sends back
deposit - winningAmount. Settled.
When you do NOT get a refund
You don't get a refund:
- While the auction is still Open or Triggered. Your deposit is escrowed in the contract until settle. You can't withdraw early.
- If you allocated a slot but the contract is still Open. Slots that haven't received ciphertext yet still tie up your deposit. The deposit is only released when the auction settles, not when the slot is abandoned.
In other words: the only way to get a deposit out of the contract is for the auction to reach a terminal state.
The sealed reserve affects your refund outcome
Because the reserve is encrypted, you won't know whether your bid clears the floor until settle runs. If the revealed reserve turns out to be higher than your bid, your deposit is refunded and no license is minted — even if yours was the highest bid in the room.
This is the expected behavior. Two-sided sealing means both parties take a risk: you don't know the floor, and the seller doesn't know how high anyone bid.
How refunds are paid
All refunds use standard WIP.transfer calls from the SealedAuction
contract to the bidder address.
The contract loops through every losing bidder and calls transfer for
each. If any single transfer fails (extremely unlikely — WIP is a simple
ERC-20), the whole settle() reverts atomically. Refunds can't be partially
completed.
Finding your refund
The refund lands in the same wallet that placed the bid. Check your WIP balance after settlement.
If you're tracking by transaction:
- The
AuctionSettledorAuctionExpiredNoWinnerevent marks the settlement - The
WIP.Transferevent from the SealedAuction address to your address is your refund
The SealedIP UI surfaces this on the My bids dashboard:
- Bids on settled auctions appear under the Settled tab; your refund (if you didn't win) is implicit since the row shows "Revealed at close" and your contract balance is back to zero.
- Bids on no-winner auctions appear under Refunded.
What if a refund doesn't arrive?
If the auction is Settled but your WIP balance didn't increase: check the
AuctionSettled event for the relevant auctionId on
Storyscan. If the winningAmount and
winner look correct, scan for WIP.Transfer events from the SealedAuction
contract in the same block — there should be one transfer per losing bidder.
If you're definitely listed as a bidder (look for BidSlotAllocated events
with your address) and the refund transfer is missing, that's a bug.
Open an issue with the auction
id and your wallet address.
Time to refund
The contract sends refunds in the same transaction as the settlement. Your
WIP balance reflects the refund as soon as the settle() transaction is
mined.
Block times on Aeneid are short (~1 second), so a refund is typically
available within seconds of the orchestrator calling settle(). The
overall time from deadline to refund is gated by validator share publishing,
not by settlement itself.