Inspect and accept a seller’s delivery-versus-payment assignment. The agreed payment and the SET transfer either both settle in one transaction or both revert.
Alternative trading route
Small AMM trade instead?
Assignments are intended for a larger or specifically negotiated delivery-versus-payment trade with a known counterparty wallet. The counterparty can remain personally anonymous because only the wallet address is needed. For a small trade at any time against available pool liquidity, use Uniswap instead.
What is an assignment? It is a contract offer between a specific seller and buyer. The offer fixes the SET amount, payment asset, payment amount, and a one-time secret hash. Acceptance settles payment and SET atomically. The smart contract accepts any amount in SET token units, so technically fractional rights can be included; this interface deliberately asks for whole shares.
Alternative: You can trade SET against Sepolia USDC through the public Uniswap V3 pool instead of arranging a bilateral assignment. Open Uniswap trading and market history.
Enter the seller address. The buyer is always the wallet currently selected in MetaMask.
Seller
—
Buyer
—
Stored SET amount
—
Payment asset
—
Exact payment
—
Key hash
—
Step 1 — ERC-20 payment only
Grant the SET contract the exact payment-token approval
If the offer requires SepoliaUSDC or another ERC-20 token, the buyer first sends an approve transaction to that payment-token contract. The spender is the SET contract shown below. After the approval is mined, Step 2 calls acceptOffer. Native SepoliaETH payments skip Step 1.
SET contract approved as spender
—
Payment balance
Not checked
Payment-token approval to SET contract
Not checked
Gas
—
Step 2
Accept the offer after approval
The buyer now calls acceptOffer(from, amount, paymentToken, payment, ephemeralKey). The interface uses the exact terms stored in the offer while displaying the payment in ordinary units, for example 40 USDC; the one-time key must match the on-chain hash.
Load an offer and enter the key to verify it locally.