Wallet approvals and transactions
ERC-20 approvals allow a specific contract to transfer a specific token for an authorized action. RuneMarket uses different spenders for different workflows. Check the token, spender, and amount shown by the interface before signing.
Approval map
| Action | Token approved | Spender |
|---|---|---|
| Mint YES and NO | USDC payment token | The individual market contract |
| Burn a YES/NO pair | YES and NO | The individual market contract |
| Buy YES or NO now | USDC payment token | Permit2, then the Universal Router |
| Sell YES now | YES | Permit2, then the Universal Router |
| Sell NO now | NO | Permit2, then the Universal Router |
| Create a buy limit order | USDC payment token | Permit2, then the Order Manager |
| Create a sell limit order | Selected YES or NO token | Permit2, then the Order Manager |
| Propose, dispute, or escalate a result | USDC payment token | Oracle Bonds |
| Redeem a YES/NO winner | Winning outcome token | The individual market contract |
| Withdraw from a canceled market | Each nonzero YES and NO balance | The individual market contract |
Permit2 approvals have two layers: the token first authorizes Permit2, and the Permit2 allowance then names the final spender. An approval for the Universal Router does not authorize the Order Manager, and vice versa.
Before submission
RuneMarket should refresh current state and simulate each write immediately before requesting the wallet signature. Depending on the action, this includes checking:
- wallet connection and Robinhood Chain network selection;
- current market and pool status;
- balances and allowances;
- deadlines and challenge windows;
- pool initialization, liquidity, pause state, and whitelist state;
- quote freshness and minimum received;
- order ownership or cancellation eligibility; and
- the expected contract address and arguments.
Transaction states
A transaction can move through several visible states:
- Awaiting signature — the wallet has not yet approved or rejected the request.
- Pending — the transaction was submitted but has not been confirmed.
- Confirmed — a receipt was mined and the expected RuneMarket events were found.
- Reverted — the chain rejected execution.
- Rejected — the user declined the wallet request.
After confirmation, RuneMarket refreshes affected balances, allowances, market state, quotes, and indexed views. Indexed history may update later than the transaction receipt, so a confirmed action can briefly coexist with stale activity or order-book data.
Robinhood Chain gas
RuneMarket USDC payment and outcome tokens do not pay network fees. Wallets need ETH on Robinhood Chain for approvals, trades, orders, oracle actions, and redemption transactions.