Skip to content

Make an offer

To bid on a bond you do not hold, you make an offer in WETH. An offer is a signed message, free and off chain. The holder accepts it on chain, the WETH moves from your wallet to theirs and the bond moves to yours, and you pay the marketplace fee in WETH on top. The card is in the marketplace section of the bond’s page, under Buy Bond when the bond is listed, and its button reads Connect Wallet until a wallet is connected. The mechanism behind all of it is on How trading works.

Offers are paid in WETH, wrapped ETH, because the holder’s accept draws the amount from your wallet while you are away, and a contract can draw a token on an approval but never plain ETH. The wallet menu, behind your address at the top of the app, has Wrap ETH and Unwrap WETH. Each opens a panel in the menu’s place, with one amount field and Max. The note under the field reads “You hold … ETH after gas. Max keeps ~… ETH for it.” for a wrap and “You hold … WETH.” for an unwrap. Each is one transaction for exactly the amount you typed, and the toasts read “ETH wrapped” and “WETH unwrapped”.

You need not go there first. Once the amount and the duration on the card are valid, a WETH balance short of the amount plus the fee turns the card’s button into a wrap step. The amber note reads “You hold … WETH, this offer needs … WETH including the marketplace fee. Wrap the difference from your ETH.” and the button Wrap … ETH wraps exactly the shortfall, one transaction. It reads Confirm in wallet, Processing… and Syncing… on the way, and the toast “ETH wrapped” appears at the receipt. If your ETH after gas does not cover the shortfall either, the note turns red and adds “You hold … ETH after gas, … ETH is needed.”, and the button is held.

Next the button reads Approve WETH if the marketplace’s allowance on your WETH is short of the amount plus the fee. Press it and the Review Approval modal opens. At the top it names what you are approving, an unlimited WETH allowance, with the marketplace’s address linked to a block explorer, what it draws per offer, the amount plus the fee, and when it is drawn, at the accept. Under Please confirm before approving sit three statements, and all three must be ticked.

  1. “I understand that any offer I sign can be accepted by the holder without a further step of mine, until it expires or I cancel it on chain, and that this approval then lets the marketplace draw the offer amount plus the fee from my WETH, and nothing else.”
  2. “I understand that only the validator’s balance backs a bond I buy through an offer, that penalties beyond the buffer, or a network-wide event that no buffer prevents, can leave it partly or fully uncovered, and that a defaulted Coffer pays first come first served from what it holds.”
  3. “Before every offer I check that the validator’s withdrawal credentials point at its Coffer, that its balance on both layers covers every bond outstanding, and that its buffer fits the time left, and I accept that bond’s remaining maturity value, maturity date and fee as fixed.”

You tick these once. The approval is unlimited, so it is one transaction for every offer you will ever make, and the step does not show again unless you lower the allowance elsewhere. That is why the third box is a standing commitment rather than a check on the bond in front of you, and why the offer button afterwards carries a line back to the same page. The line under the boxes, How to verify these: Before you buy, opens Before you buy in a new tab.

Confirm in Wallet sends the approval. The card’s button then reads Confirm in wallet, Processing… and Syncing…, and the toast “Token approved” appears at the receipt. The allowance only lets the marketplace draw WETH against an offer you signed, at the accept, and never more than that offer’s amount plus its fee. Both funding steps show only once the amount and the duration are valid, and while a wrap or an approval runs the fields are held.

The card’s header reads Best Offer over the best offer that is not yours, in WETH, or over No offers when no other wallet has one. The ask itself is on the buy card above, under Buy or accept. Type your amount in WETH into the field Your offer, or step it with the arrows in moves of 0.0005 WETH. Under the field the line “Balance:” shows your WETH. The amount has a ceiling, one wei below the smaller of the ask and the bond’s remaining maturity value. At the ask you buy instead, and an offer at or above the remaining value would leave no profit for the fee to price. The line under the field names the bound with its figure, “Amount must be below the ask (… WETH).” or “Amount must be below the bond’s remaining value (… WETH).” What you type is never changed for you. An amount at or above the bound is reported and the button held, while the arrows stop at the highest four-decimal amount under it. A wrong entry shows “Enter a valid ETH amount.” or “Amount must be greater than zero.”

The field Offer Duration takes a number of days, 30 when the card opens, and from 1 to 90. Out of range shows “Duration must be at least 1 day.” or “Duration must be at most 90 days.”, and an entry that is not a number “Duration must be a positive number of days.” The expiration is a date and time, that many days from when the card opened or you last changed the days, and it is signed into the message. Until then the offer can be accepted and after it nobody can accept it, and your card counts the time down.

Two rows under the duration show the money. Marketplace fee is the fee, and You pay if accepted is the amount plus the fee, the total the accept draws from your WETH. Both read as a dash until you have typed an amount. The fee is 9 percent of your profit, the bond’s remaining maturity value minus your amount, so a lower offer pays a higher fee and an offer just under the ceiling pays nearly none. It is charged only if the holder accepts, in WETH on top of the amount, and never on signing or cancelling. Your WETH balance and the allowance have to cover the total when you sign, and the contract checks the same two numbers at the accept. See Fees.

Under the button, on this face and on the update face alike, sits the line “Offering confirms the checks you accepted when approving WETH · Before you buy”, whose second half opens Before you buy in a new tab. It shows on every offer, a revision included, because the boxes at the approval were ticked once and stand behind all of them.

Press Make Offer. Your wallet asks for a signature, not a transaction, so nothing costs gas, and the button reads Confirm in wallet while it asks. From the moment you sign it reads Syncing…. The toast “Offer submitted” appears once the offer is stored, and the button keeps reading Syncing… until the bond’s page shows your offer at that amount, usually within a few seconds. Then the form turns into your offer’s card. If that takes too long, the card says “Transaction confirmed but server sync timed out. Please refresh.”

What you signed is seven fields, your own address, the bond, your amount, the bond’s remaining maturity value, the expiration, and two nonces the app read from the chain. The button stays off until that read has resolved. Nothing leaves your wallet at the signature. The WETH stays yours until the holder accepts, and the offer is a standing permission to draw it, at that amount plus the fee, against this bond and no other.

Your offer is checked before it is stored, and a refusal shows as a red line under the button. “Your WETH balance or allowance does not cover this offer plus the fee.” means your balance or the allowance on chain falls short, which the card’s own steps normally prevent. “You already have an offer at this amount or higher. Cancel it on-chain first to place a lower one.” means your current offer stands at the same or a higher amount. Raise yours to replace it in one signature, or cancel first to place a lower one. “The bond’s value changed since you opened this form. Close it and open it again.” means the remaining maturity value moved under the form. “Your offer nonce is out of date. Refresh the page and sign again.” means a cancel of yours landed since the page loaded. “This bond is no longer outstanding.” means the bond was settled. “The expiration is too far in the future.” means the expiration is past the longest one allowed, which the card’s 90 days normally stay under. A signature you decline in your wallet shows no red line. The button reads Rejected in wallet for a moment and is ready again. A contract wallet that turns down its own signature reads “Your wallet’s code rejects this signature, so the marketplace could not accept your offer.” If a check could not run, the line reads “The marketplace could not verify your offer right now. Nothing was stored. Please try again.” and you press again.

Your offer’s card reads Offer Price, the amount in WETH, and “Expires … · …” with the date and the time left. Browse shows the best offer on each bond in the Offer column, and for your wallet the status pill reads Bidding on a bond you have an offer on, or Outbid when a higher offer stands. Browse lists no bond of a Coffer whose mark is red. If the Coffer turns red while your offer stands, the bond leaves Browse and your offer stays live. The bond’s page still opens by its own address, which ends in /bonds/ and the bond’s number, and you see or cancel the offer there. On the bond’s page a higher offer shows as a coloured ring around your card, with no words. An equal offer does not outbid you. The holder sees the offers in a table by amount, up to 50 of them with their count and Accept on each row, and picks any of them, not necessarily the highest. The bond’s history gains the line Offer made while the offer stands.

There is one offer per bond per wallet, and raising the amount replaces it in one signature with no transaction and no gas, because the holder would rather accept the higher one. An equal or lower amount needs the cancel first, which the pencil below does for you. One WETH balance can stand behind offers on several bonds, since each offer is checked on its own against your balance and allowance. The first accept takes the WETH, and the others then fall short and are hidden until the balance covers them again.

Your offer keeps being checked while it stands, and it is hidden when a check fails, while the signature stays live on chain. The bond’s page then shows the note “Your offer is not shown” with “Your offer of … WETH is still signed but the marketplace is not showing it because:” and the reason. The reasons read “its expiration has passed”, “the bond is no longer outstanding” and “the bond’s remaining value changed since you signed”. The other two are “your WETH balance or allowance no longer covers the offer plus the fee” and “your wallet no longer accepts the signature it gave”. The note ends “Cancel it on-chain to revise it.” An offer hidden for a short balance comes back on its own once the balance covers it. Every reason, and what to do about it, is on Why an offer is not shown.

Your offer’s card has a pencil in its corner, Update offer, which turns the card over to an update face with the amount and the duration to edit. The face shows the best rival offer as Best Offer, in amber while it stands above yours, with Your offer: … WETH underneath and your amount prefilled. A higher amount needs no cancel. Update Offer asks for one signature at the same nonce, the new offer replaces your current one, and the card turns back once the new amount shows. An equal or lower amount cancels first, since the chain would honour the earlier signature too. The button then reads Cancel Existing Offer and sends the cancel transaction, Confirm in wallet, Processing… and Syncing…, and then Update Offer asks for the signature at the new nonce. The wrap and the approval come first if the new total needs them. Until a transaction is sent, the X in the corner, Keep the offer, turns the card back with nothing changed.

To withdraw the offer, press Cancel Offer on the card. It is a transaction, since only the chain can revoke a signature, and it costs gas. The button reads Confirm in wallet while your wallet asks, Processing… while the transaction is in flight and Syncing… until the bond’s page shows no offer of yours. The toast “Offer cancelled” appears at the receipt. The cancel moves your nonce for that bond forward, so the old signature can never be accepted, and the history gains the line Offer cancelled. A hidden offer is cancelled the same way, from the same card under the note.

Nothing pops up on your screen when the holder accepts. The WETH, the amount plus the fee, leaves your wallet, the bond lands in your portfolio on the next refresh, and its history reads Offer accepted. From then on you are the holder, with the claim and the maturity that Before you buy describes, and you can list the bond in turn, see List a bond.

If you come to hold a bond you had bid on, because you bought its listing or received it, your offer stays live. The bond’s page shows the note “Your offer on this bond” with “You made it before you held the bond. Nobody can fill it while you hold the bond, the next holder can. Cancel it if you do not want that.” and the cancel card under your listing controls, and your row in the offers table reads Your offer with Cancel in place of Accept.

A matured bond is not traded here. If your offer is still live when the bond matures, the page shows “This bond has matured” with “It is no longer traded here. Your offer is still signed and can be filled on-chain until you cancel it.” and the cancel card, nothing else. An offer that runs out expires on its own, no transaction needed, and the line under the amount reads “Expired …” until the card leaves the page. The Offer made line stays in the bond’s history for 30 days after the offer was accepted, cancelled or expired, and then goes. The lines that came from the chain, Offer accepted and Offer cancelled, stay.