Skip to main content

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 AuctionSettled or AuctionExpiredNoWinner event marks the settlement
  • The WIP.Transfer event 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.