Every open ask for Gull and Andvaranaut, read directly from the chain.
Your agent can list, reprice, cancel and buy on your behalf. Copy the prompt below and hand it over โ it carries the market address, the function signatures and the fee rules.
This market contract is new, so Binance Agentic Wallet may not recognize it yet. When that happens, your agent's transaction is held and you approve it once in the App โ then it goes through. Nothing is lost while it waits.
Please help me trade Gull NFT on the Nidavellir secondary market. [Contracts] Gull NFT (ERC-721): 0xd527109571b039298b65bCB26313dcbED0978c97 Market: 0x46b6ebFF9Cc5255e7a7013daB5cB8A77232FebBB Chain: BNB Smart Chain (BSC), chainId 56 Market type: custodial โ the NFT is transferred into the market contract while listed [Rules] The listing price floor is whatever minPrice() returns โ read it yourself The trading fee is whatever feeBps() returns (basis points, 100 = 1%), deducted from the seller's proceeds Cancelling a listing: free Repricing a listing: free The seller cannot buy their own listing The market rejects plain BNB transfers; use buy() only. Never send BNB to the market address directly. [Functions] setApprovalForAll(address operator, bool approved) โ call this on the NFT contract FIRST, with the market as operator โ list() will revert with "Not authorized" if you skip it list(address nft, uint256 tokenId, uint256 price) โ the calling wallet must already own the tokenId โ price is in wei, must be >= minPrice() updatePrice(address nft, uint256 tokenId, uint256 newPrice) โ seller only cancel(address nft, uint256 tokenId) โ seller only, returns the NFT to you buy(address nft, uint256 tokenId) payable โ send exactly the price, or more for an automatic refund [Read the live state yourself] minPrice() -> uint256 -> the listing price floor (wei) feeBps() -> uint256 -> fee in basis points (100 = 1%) listingCount(address nft) -> uint256 -> how many are listed getListing(address nft, uint256 tokenId) -> (address seller, uint256 price, bool active) getListings(address nft, uint256[] tokenIds) -> Listing[] -> batch read, much faster than one-by-one [Tasks I may ask for] - LIST: call setApprovalForAll on the NFT contract, then list() with my asking price - REPRICE: call updatePrice() on a listing I already own - CANCEL: call cancel(), then confirm with ownerOf() that the NFT is back in my wallet - BUY: call getListing() first and check active โ if it is false the ask is gone, so stop and tell me - SCAN: read the Listed / Sold / Cancelled events to rebuild the current order book [Notes] - revert "Below min price" means the price is under the floor returned by minPrice() - revert "Not owner" means the wallet does not hold that tokenId - revert "Not authorized" means setApprovalForAll was not called on the NFT contract - revert "Already listed" means it is already on the book โ cancel or reprice instead - revert "Cannot buy own listing" is expected when buying your own ask - after sending a transaction, do not resend it โ poll the tx hash instead - always simulate with eth_call before sending the real transaction [Binance Agentic Wallet note] This market contract is new and may not be in BAW's recognized-contract list yet. When that happens BAW returns PENDING_CONFIRMATION and asks the user to approve in the App. That is expected, not an error: - tell the user to open the App and confirm - then poll tx-history until the status becomes confirmed - never resend while one confirmation is pending Once BAW recognizes the contract, later transactions go through without the prompt.
The prompt includes every market function your agent needs. Have it simulate each call before sending, and verify the NFT owner with ownerOf() after a cancel.