search_listings
Search listings
Use this when the user wants to find goods or services offered for barter on TraydStar. Searches active listings by text, category, or type and returns each listing's id, title, description, what the owner wants in exchange, whether an agent listed it, and the owner's display name and rating. TraydStar is barter only: listings are traded for other goods or services, not bought.
Parametersqcitykindtypelimitshipsoffsetcategorylisted_bysubcategory
Use this to read one TraydStar listing in full when you already have its id (for example from search_listings), before messaging its owner or proposing a trade.
Parameterslisting_idrequired
get_profile
Get my TraydStar profile
Return the TraydStar profile represented by this request's authenticated credentials. The opaque id is unique within this app and remains unchanged across token refresh, reconnection, and display-metadata changes.
Takes no parameters.
create_listing
Create a listing
Use this when the user wants to offer a good or service for barter on TraydStar. Publishes a public listing on their account and returns its id. Photos can't be attached here; the user can add them on the website. Confirm the title, description, and category with the user before calling.
Parameterskindtyperequireddraftshipstitlerequiredpickupcategoryrequiredconditionwant_tagsdescriptionrequiredsubcategorylocation_city+2 more
set_listing_status
Pause, resume, or publish a listing
Use this to pause one of the user's listings (hidden from the marketplace; pending proposals for it are closed), resume a paused one, or publish a draft. status is ACTIVE or PAUSED. Confirm with the user first, since pausing closes proposals.
Parametersstatusrequiredlisting_idrequired
save_listing
Save a listing
Use this when the user wants to keep a listing to come back to. Saved listings are listed with list_saved_listings.
Parameterslisting_idrequired
list_saved_listings
List saved listings
Use this to see the listings the user saved, newest first.
Takes no parameters.
list_my_listings
List my listings
Use this to see the user's own TraydStar listings and their ids, for example to choose one to offer in a proposal, or before editing or removing one. Shows active and already-traded listings.
Takes no parameters.
update_listing
Edit a listing
Use this when the user wants to change one of their own active listings. Only the fields given are changed, and the previous values are overwritten, so confirm the changes with the user first. A listing that is part of a trade in progress can't be changed. Photos can't be changed here.
Parameterstypetitlecategoryconditionwant_tagslisting_idrequireddescriptionsubcategorystated_value_usdwant_description
remove_listing
Remove a listing
Use this when the user wants to take one of their own listings off TraydStar. It disappears from search, and any pending proposals involving it are closed. This can't be undone here, so confirm with the user first. A listing that is part of a trade in progress can't be removed.
Parameterslisting_idrequired
list_proposals
List my proposals
Use this to see the trade proposals the user has sent and received on TraydStar. Each proposal shows its status (PENDING, ACCEPTED, DECLINED, WITHDRAWN), whether the user sent or received it, who the other member is, the listing offered, and the listing wanted.
Takes no parameters.
create_proposal
Propose a trade
Use this when the user wants to propose a barter trade for someone else's listing, optionally offering one of their own listings in exchange. Sends the proposal to the listing's owner, who is notified by email. Confirm with the user which listing they want and what they are offering before calling. A pending proposal can be withdrawn with withdraw_proposal.
Parametersmessageproposer_listing_idreceiver_listing_idrequired
counter_proposal
Counter a proposal
Use this when the user wants to answer a received proposal with different terms instead of accepting or declining it. Give offer_listing_id to change what the user gives (defaults to the listing that was asked for), want_listing_id to change what the user asks for (defaults to what was offered), and a message describing the new terms. The original proposal closes and the counter goes to the other side as a new proposal they can accept, counter again, or decline. Confirm the terms with the user first.
Parametersmessageproposal_idrequiredwant_listing_idoffer_listing_id
accept_proposal
Accept a proposal
Use this when the user decides to accept a trade proposal they received. This commits both sides to the trade by creating a Handshake and cannot be undone. Confirm with the user first. Returns the Handshake id and what is needed next for the user's side.
Parametersproposal_idrequired
decline_proposal
Decline a proposal
Use this when the user decides to turn down a trade proposal they received. The proposal is closed and cannot be reopened; the other person would need to send a new one. Confirm with the user first.
Parametersproposal_idrequired
withdraw_proposal
Withdraw a proposal
Use this when the user wants to cancel a pending trade proposal they sent. The proposal is closed and cannot be reopened. Confirm with the user first.
Parametersproposal_idrequired
send_message
Send a message
Use this when the user wants to message another TraydStar member, for example to ask about a listing or agree on terms before proposing a trade. Give listing_id to reach that listing's owner, or to_user_id to reply to someone. The message is delivered immediately and cannot be unsent, and the recipient sees that it was sent through an assistant, so confirm the wording with the user first. Until the recipient replies, at most 3 messages can be sent to them.
Parameterscontentrequiredlisting_idto_user_id
list_conversations
List my conversations
Use this to see who the user has been messaging on TraydStar, with the latest message and the number of unread messages in each conversation.
Takes no parameters.
read_conversation
Read a conversation
Use this to read the messages between the user and one other TraydStar member, oldest first. Does not change anything: messages stay unread until mark_conversation_read is called. Pass `after` (the created_at of the last message already seen) to get only newer messages.
Parametersafterlimituser_idrequired
mark_conversation_read
Mark a conversation read
Use this after the user has seen the messages in a conversation, to clear its unread count. Only changes the read status of messages the user received.
Parametersuser_idrequired
list_handshakes
List my Handshakes
Use this to see the user's Handshakes on TraydStar. A Handshake is an agreed trade: it shows whether each side has confirmed and whether each side has marked the exchange complete.
Takes no parameters.
get_handshake
Get a Handshake
Use this to check one Handshake (an agreed trade) and what your side still needs to do. The `payment.state` field is 'covered' (nothing is owed: call confirm_handshake), 'payable' (the result includes USDC payment instructions: link a wallet once with link_wallet, send the exact amount, then call verify_handshake_payment), or 'settled' (your side is already confirmed).
Parametershandshake_idrequired
confirm_handshake
Confirm my side of a Handshake
Use this to confirm the user's side of a Handshake when get_handshake reports payment.state = 'covered', meaning nothing is owed. No money moves. The trade becomes active once both sides have confirmed, and a confirmation cannot be undone, so confirm with the user first. If a fee is owed instead, this returns an error and changes nothing.
Parametershandshake_idrequired
complete_handshake
Mark my side of a trade complete
Use this after the real-world exchange has happened and the user says their side of an active Handshake is done. The trade is final once both sides mark it complete, and this cannot be undone, so confirm with the user first. Reviews are left by the user on the TraydStar website, not through this tool.
Parametershandshake_idrequired
withdraw_handshake
Withdraw from a Handshake
Use this when the user wants to call off a trade that hasn't been confirmed by both sides yet. The Handshake is cancelled, both listings stay listed, and the other side is told. Not possible once both sides have confirmed or if a fee has been paid. Confirm with the user first.
Parametershandshake_idrequired
nudge_handshake
Nudge the other side
Use this when the user has done their part of a Handshake and the other side hasn't. Emails them once; it can be used again after 24 hours.
Parametershandshake_idrequired
get_wallet_link_message
Get the wallet-link message
Use this before paying a Handshake fee in USDC for the first time. Returns the exact message to sign with the paying wallet (EIP-191 personal_sign) and the currently linked address, if any. Fee payments are only credited from the linked wallet.
Takes no parameters.
link_wallet
Link the paying wallet
Use this to link the wallet that will pay Handshake fees, by submitting a signature over the message from get_wallet_link_message. Replaces any previously linked wallet. The message expires after a few minutes.
Parametersaddressrequiredmessagerequiredsignaturerequired
verify_handshake_payment
Verify a USDC fee payment
Use this after sending the USDC Handshake fee exactly as get_handshake instructed, to have the transfer checked on-chain and credited. Does not move funds itself. If the transaction is not visible yet (422), wait a few seconds and call again.
Parameterstx_hashrequiredhandshake_idrequired