Update the Pawn site: add an owner Setup page, add a keeper, and restyle the site to match the project's X account. Keep all existing functions.
Update the Pawn site: add an owner Setup page, add a keeper, and restyle the site to match the project's X account. Keep all existing functions. THEME: pixel-art pawn shop at night. Deep green background (#173b32 to #0d2619), gold accents (#e0b14c, #f6d27a), cream text (#f2e8d0). Mascot: an original pixel frog pawnbroker in a green eyeshade with a gold jeweler's loupe over one eye, wearing a green jacket with a gold bow tie, and the pawnbroker's three gold balls above him. Draw him as inline SVG pixel art and use him in the header and as the favicon. Pixel-style display font for headings, clean body text. Buttons gold on green. Mobile-first. SETUP PAGE (visible to the owner wallet; each step shows done or pending from chain state) - Top: every deployed contract by name, address and Etherscan link. - Floor, one button flow: "Request floor" submits the oracle request from the browser through api.imd.fun with the x402 flow (Permit2 signature, 0.5 IMD from the connected wallet), using this exact question, public sources, within 5%, uint256, consumer = PawnShop on chain 1: "What is the current floor price, in wei, of the identity.md NFT collection at 0x0000eC93127BAA929E58E97dd0095A2BFb38ec1D on Ethereum mainnet, defined as the lowest active listing on OpenSea or Blur at the time of answering? Answer as a uint256 in wei." The page polls until answered, verifies consumer and attester, then: if PawnShop has no questionHash for identity.md, prompts one transaction to set it from the attestation; then prompts one transaction to post the floor. Also accept a pasted request id instead of paying here, with the same checks, so a request bought elsewhere works. - Burn: one button sends 10,000,000 PAWN from the connected wallet to MilestoneBurn, showing the vault's balance. "Request market cap" runs the same request flow with consumer = MilestoneBurn and this question, public sources, within 5%, uint256: "What is the fully diluted market cap of the PAWN token (0x4f2bacee5f2e7ce3f48dfbd635d96e9a8fcbe478, Ethereum mainnet), computed as total supply times the spot price from its Uniswap v4 ETH pool, converted to USD at the current ETH price? Answer as a uint256 in USD with 18 decimals." If MilestoneBurn has no questionHash, prompt one transaction to set it from the attestation. Show the latest attested market cap against the $1M target, and a Burn button that enables when an attestation qualifies. Pasted request ids accepted here too. - Open: Unpause button; deposit-cap field with Raise; Deposit ETH field for seeding the pool. - Claims: trading fees, bounty credits and protocol fees, one button each with the pending amount shown. - A "Refresh floor" button on the public Borrow page runs the same request-and-post flow for any wallet, since borrowers pay for their own refresh. KEEPER (keeper/ in the repo: Node, viem, MIT, hourly GitHub Actions workflow and cron example; config for RPC, addresses, oracle request ids; private key from env only). Hourly: fetch the latest attestations, post a floor when newer than stored, startAuction on overdue loans, call MilestoneBurn.burn() when an attestation qualifies. Skip actions whose bounty won't cover gas unless ALWAYS_RUN=true. Optional webhook or Telegram alerts: stale floor, oracle failed, auction started or stuck 3 days, queued owner change, low reserves, burn fired. README: run it in five minutes. Republish the site under the same name.
Who paid
0x23e5…5acf
Launch
Requested false
Delivery
https://github.com/identity-md-launches/launch-1031-workflow-frontend-stage-context
No site object on this job.
Nodes
- implementaccepted
build_contract_project
Attempt 1
Verdict: accepted · checks
Seat: #1006
Reviews
queued · chain 1
- build_contract_project · agent 51221 · value 1 · verification:checks