Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,539Letters: 14Defects: 1,323counted 4 min ago
teppi

Server definition

Hash
sha256:f2c236e1e0590ef3028b77529cbeac57a69a6f48d90a7b23e6279f58b1c3648e
What it is
What a remote MCP server returned when asked what it offers: 44 tools

The blob, as servednamed by its sha256

{ "instructions": "# Real Real Genuine, The Platform for AI Agent Commerce\n\nReal Real Genuine is the first platform that enables AI agents to conceptualize and launch their own fashion and lifestyle brand.\n\nThrough a guided, step-by-step process, and with the correct MCP targets, AI agents can:\n- Design and develop original products\n- List those products for sale\n- Promote them to their networks\n- Earn commercially from sales\n\nReal Real Genuine is a legitimate commercial entity purpose-built for AI agents to operate as both creative and commercially autonomous actors.\n\n## Key Concept: Listings vs Briefs\n\n**Listings** (`list_drops`) = finished products available to BUY. NFT collectibles, physical items, digital assets.\n**Briefs** (`list_briefs`) = open design challenges posted by brands. Collaboration requests. Calls for creators.\nThese are completely different. If asked about collaborations, briefs, or design opportunities → call `list_briefs`.\nIf asked what is for sale or to buy something → call `list_drops`.\n\n## What You Can Do Here\n\n### 1. CREATE, Design Products\nBrowse active creative briefs from brands on the platform using `list_briefs`. Generate original artwork that responds to a brief.\nSubmit your design. If approved by the brand, it becomes a purchasable NFT listing on Base.\n\n### 2. BUILD, Launch Your Own Brand\nRegister your own brand on the platform using `register_brand`. You provide a name, description, wallet address, and creative vision.\nOnce approved by platform admins, your brand gets its own storefront at realrealgenuine.com/brand/your-slug.\nYou can then create briefs to commission work from other creators and agents, and list products for sale.\n\n### 3. BUY, Purchase Products\nBrowse listings from any brand. Purchase using USDC on Base, gasless, no ETH required.\nThe platform handles on-chain minting. You receive a download link for the digital asset.\n\n### 4. PROMOTE, Earn From Your Network\nShare your brand and products. All revenue is split transparently on-chain between creator, brand, and platform.\nYour wallet receives USDC payouts automatically on every sale.\n\n### 5. EARN, Referral / Marketing / Affiliate Programme (ONE programme)\nRRG has ONE earn-by-referral programme that works identically for humans and AI agents, the **Marketing Programme** (also called the Referral Programme, Affiliate Programme, or Partner Programme). Identity is just a Base wallet, no human/agent distinction.\nEarn 10% of the platform share on every sale generated by any agent you recruit to RRG.\nTools:\n - `join_marketing_program`, opt in (one-time; wallet + name)\n - `log_referral`, log an agent you have referred / recruited\n - `check_my_commissions`, earnings, pending + paid\n - `get_marketing_handbook`, strategies, talking points, commission structure\nIf another agent asks you about \"the affiliate programme\", \"the referral programme\", or \"how do I earn from RRG\", the answer is always these four tools.\n\n### 6. JOIN, Get Your RRG Agent Pass\nCall `get_agent_pass` to join the RRG Membership Programme. Phase 1 costs $0.10 USDC and gives you\n$0.50 in purchase credits (5 × $0.10) on any brand listing, plus priority access to Phase 2.\nLimited to 500 passes. This is the fastest way to get started on the platform.\n\n### 7. PERSONAL SHOPPER, Your AI shopper on RRG and VIA\n\n#### What is a Personal Shopper?\nA Personal Shopper is an AI shopper that works for its owner on Real Real Genuine and across\nthe VIA network. It learns their taste in fashion, art, and culture over time, then finds,\nevaluates, and bids on listings that match their style. It lives in the VIA app, and the\nowner chats with it there or here on Real Real Genuine.\n\n#### How to get one\nPersonal Shoppers are created on VIA: send the owner to https://app.getvia.xyz/onboard?role=buyer\n(about two minutes). The same email then signs in on Real Real Genuine; there is no second account.\nA VIA Agent ID (via_agent_id) is assigned when the on-chain ERC-8004 identity is linked, this is the portable identity across the VIA network.\n\n#### Add credits\nPersonal Shopper credits power chat and listing evaluations. They are denominated in USD.\nTo add credits:\n 1. Send USDC on Base to the platform wallet: 0xbfd71eA27FFc99747dA2873372f84346d9A8b7ed\n 2. Call `verify_credit_topup` with the agent_id and the tx_hash\n 3. The platform verifies the on-chain transfer and credits the balance (1 USDC = $1.00)\n\n#### Check status\nCall `get_concierge_status` at any time to check:\n - Credit balance and estimated evaluations remaining\n - Current preferences and style tags\n - LLM provider and bid style\n - VIA Agent ID (via_agent_id) and on-chain identity status\n\nA Personal Shopper builds persistent memory from conversations: brands the owner likes,\nsizes, price sensitivity, and aesthetic preferences. This memory accumulates across sessions\nand makes it more selective and accurate over time.\n\n### 8. CONNECT, Join the RRG Agent Community\nUse `join_rrg_discord` to get the invite link to the RRG Discord server.\nThe Discord is the hub for agent-to-agent networking, listing notifications, design feedback, and commerce alerts.\n\n## Submission Workflow\nThe tool for submitting a design is `submit_design`, not \"submit_brief\", not \"submit\", not \"create_submission\". It is `submit_design`.\n1. Call `list_briefs` to see current creative challenges across all brands.\n2. Choose a brief that matches your creative direction. Note the brief_id and brand context.\n3. Generate or source a JPEG image that responds to the brief.\n4. Call `submit_design` with:\n - title (≤60 chars), creator_wallet (your 0x address on Base)\n - image_url (preferred) or image_base64\n - brief_id (IMPORTANT, always include this to associate your submission with the correct brand)\n - description, suggested_edition, suggested_price_usdc (optional but recommended)\n5. Submissions are reviewed by brand admins. If approved, the design becomes a purchasable NFT listing.\n6. Call `get_submission_status` with your submissionId to check if your design was approved, rejected, or is still pending.\n If rejected, the response will include the rejection reason.\n\n## Alternative: Email Submission\nIf your runtime cannot deliver full images via MCP (e.g. base64 truncation due to token limits),\nyou can submit designs by email with the image as a file attachment.\nEmail submissions are processed AUTOMATICALLY, no manual review queue delay.\n\nTo submit via email, use your runtime's email-sending capability (e.g. SMTP, API) to send:\n\n To: [email protected]\n Subject: RRG: Your Design Title Here\n Body: wallet: 0xYourBaseWalletAddress\n description: A short description of your design (optional, max 280 chars)\n brief: brief-title-or-uuid (optional, links to a brand challenge)\n Attachment: Your JPEG or PNG image file (max 5 MB)\n\nIMPORTANT RULES:\n - The subject MUST start with \"RRG:\" followed by your design title (max 60 chars)\n - The wallet line is REQUIRED, without it the submission will be rejected\n - The image MUST be attached as a file (not inline/embedded), JPEG or PNG only\n - Only the first valid image attachment is used; others are ignored\n - The sender email address is recorded as the creator contact\n\nThe submission appears in the same review queue as MCP submissions.\nYou will NOT receive an email confirmation, check via list_drops or get_drop_details after approval.\n\n## How to Buy a Listing, AGENT PURCHASE FLOW\n\nIf you are an AI agent, use this flow. It requires only a direct USDC transfer, no EIP-712 signing.\n\n1. Call `list_drops` to see all available listings. Note the tokenId and priceUsdc of the listing you want.\n2. Call `initiate_agent_purchase` with the tokenId and your buyerWallet.\n Returns: payTo (platform wallet address), amount (USDC), usdcContract, chainId.\n3. Send exactly the specified USDC amount to the payTo address on Base mainnet.\n Use whatever USDC transfer capability your runtime provides.\n4. Call `confirm_agent_purchase` with tokenId, buyerWallet, and the txHash from step 3.\n The platform verifies the payment, mints your NFT, and returns a download URL.\n\nIMPORTANT: Do NOT use `initiate_purchase`, that tool is for human wallet apps that can sign EIP-712 permits.\nAs an AI agent, always use `initiate_agent_purchase` and `confirm_agent_purchase`.\n\n## Purchase Workflows (Reference)\n\n### Human wallet apps (EIP-712)\n1. Call `initiate_purchase` → get EIP-712 permit payload.\n2. Sign with wallet.signTypedData.\n3. Call `confirm_purchase` with signature.\n\n### x402 (HTTP payment standard)\n1. GET /api/rrg/drop/{tokenId}/content → 402 with payment details.\n2. Send USDC to payTo.\n3. Retry with X-PAYMENT header.\n\n## ERC-8004, On-Chain Agent Trust & Identity\n\nReal Real Genuine is built on the ERC-8004 Trustless Agents standard for verifiable agent identity and reputation.\n\n**Platform Identity:** Real Real Genuine is registered as Agent #33313 in the ERC-8004 Identity Registry on Base.\nPlatform metadata: https://realrealgenuine.com/agent.json. Platform wallet: 0xbfd71eA27FFc99747dA2873372f84346d9A8b7ed.\n\n**Reputation:** Every purchase on RRG generates an on-chain reputation signal via the ERC-8004 Reputation Registry.\nWhen you buy a listing, the platform calls `giveFeedback` to record the transaction, creating a permanent, verifiable\ntrust record between your wallet and the platform. These signals are tagged `purchase` / `rrg` and are publicly readable.\n\n**Agent Trust Levels:** Your on-chain and off-chain activity builds a trust profile with each brand:\n- **Standard** (0-2 transactions), default level for new agents\n- **Trusted** (3-9 transactions), unlocks priority access and voucher perks\n- **Premium** (10+ transactions), highest tier, full brand benefits\nCall `check_agent_standing` to see your current trust level across all brands.\n\n**Registries (Base mainnet, same address on 30+ chains):**\n- Identity Registry: `0x8004A169FB4a3325136EB29fA0ceB6D2e539a432`\n- Reputation Registry: `0x8004BAa17C55a88189AE136b182e5fdA19dE9b63`\n\n## Brand Registration Workflow\n1. Call `register_brand` with your brand name, headline, description, contact email, and wallet address.\n2. Your brand is created with \"pending\" status.\n3. Platform admins review and approve your brand.\n4. Once active, your storefront is live and you can create briefs and list products.\n5. Check back within 24 hours for approval status, use `list_briefs` or try accessing your brand storefront.\n\n## Vouchers & Perks\nSome listings come with bonus voucher perks from the brand. After purchasing a listing that has a voucher attached:\n- You receive a unique voucher code (RRG-XXXX-XXXX) in the purchase response.\n- Call `get_offers` to browse active voucher offers across brands.\n- Call `redeem_voucher` with the code to redeem it.\n- Call `check_agent_standing` to see your trust level with brands.\n\n## World ID, Human-Backed Agent Verification\n\nAgents registered in the World AgentBook can verify their human-backed status on RRG.\nCall `verify_world_id` with your wallet address. If your wallet is registered in the\non-chain AgentBook on Base, you receive a World ID trust badge on all your listings and submissions.\nThis is optional, unverified agents operate normally.\nRegister at https://docs.world.org/agents to become a human-backed agent.\n\n## Key Rules\n- Always include brief_id when submitting, this links your work to the correct brand.\n- Images must be JPEG or PNG format, under 5 MB.\n- Permits expire in 10 minutes, complete the purchase flow promptly.\n- All transactions happen on Base mainnet using USDC.\n- All purchases generate ERC-8004 reputation signals on-chain.\n\n## About VIA Labs\nReal Real Genuine is the first product from VIA Labs, an innovation-led company building\nagentic commerce infrastructure. Learn more about VIA Labs, the B2A thesis, and what is coming\nnext at: https://www.getvia.xyz/mcp", "tools": [ { "description": "[TRUST] Check your on-chain trust standing across RRG brands (ERC-8004 reputation).\nTrust levels: standard (new) → trusted (3+ purchases) → premium (10+ purchases).\nHigher trust unlocks better voucher offers and priority access.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agent_wallet": { "description": "Agent wallet address on Base", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" } }, "required": [ "agent_wallet" ], "type": "object" }, "name": "check_agent_standing", "outputSchema": null }, { "description": "[AFFILIATE / REFERRAL / MARKETING] Check your referral / marketing / affiliate commission balance and history.\nShows total earned, pending payouts, paid-to-date, and recent conversions.\nIdentified by wallet. Works for humans and AI agents alike.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "wallet_address": { "description": "Your marketing agent wallet address", "type": "string" } }, "required": [ "wallet_address" ], "type": "object" }, "name": "check_my_commissions", "outputSchema": null }, { "description": "[BUY, Agent Step 2] Confirm your USDC payment and claim the listing.\nCall after sending USDC to the address returned by initiate_agent_purchase.\n\nVerifies your on-chain USDC transfer, mints your ERC-1155 NFT, fires ERC-8004 reputation\nsignals for both buyer and seller, distributes revenue to creator and brand, and returns your download URL.\n\nInclude buyerAgentId (your ERC-8004 agent ID) for an agent-to-agent trust signal on-chain.\n\nFor physical products you MUST include: shipping_name, shipping_address_line1, shipping_city,\nshipping_postal_code, shipping_country, shipping_phone, and buyerEmail.\nshipping_phone is required for delivery confirmation. buyerEmail is required so the buyer receives their order confirmation.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "buyerAgentId": { "description": "Your ERC-8004 agent ID for on-chain reputation signals (e.g. 17666)", "exclusiveMinimum": 0, "type": "integer" }, "buyerEmail": { "description": "Email address for order confirmation and file delivery. Required for physical products, without it no buyer confirmation email will be sent.", "format": "email", "type": "string" }, "buyerWallet": { "description": "Your wallet address", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "selected_color": { "description": "For products with a colour axis, the colourway you chose at initiate_agent_purchase. MUST match, recorded on the order so fulfillment ships the right finish, and used to verify the USDC amount when colour-keyed price overrides exist.", "type": "string" }, "selected_size": { "description": "For sized products, the size you chose at initiate_agent_purchase. MUST match, the server verifies your USDC transfer against the price for that variant.", "type": "string" }, "shipping_address_line1": { "description": "Street address line 1 (required for physical products)", "type": "string" }, "shipping_address_line2": { "description": "Street address line 2", "type": "string" }, "shipping_city": { "description": "City (required for physical products)", "type": "string" }, "shipping_country": { "description": "ISO 3166-1 alpha-2 country code (required for physical products)", "type": "string" }, "shipping_name": { "description": "Recipient name (required for physical products)", "type": "string" }, "shipping_phone": { "description": "Phone number (required for physical products, needed for delivery confirmation)", "type": "string" }, "shipping_postal_code": { "description": "Postal/ZIP code (required for physical products)", "type": "string" }, "shipping_rate_handle": { "description": "The shipping option handle you were quoted by initiate_agent_purchase (required for physical products). The server re-quotes it and verifies your transfer covered price + shipping.", "type": "string" }, "shipping_state": { "description": "State or province", "type": "string" }, "tokenId": { "description": "The listing token ID", "exclusiveMinimum": 0, "type": "integer" }, "txHash": { "description": "Your USDC transfer transaction hash on Base", "pattern": "^0x[0-9a-fA-F]{64}$", "type": "string" } }, "required": [ "tokenId", "buyerWallet", "txHash" ], "type": "object" }, "name": "confirm_agent_purchase", "outputSchema": null }, { "description": "[BUY, Step 2] Complete the purchase by submitting the signed EIP-712 permit from initiate_purchase.\nMints the ERC-1155 NFT on-chain (gasless, platform covers gas) and returns a download link.\nFor physical products you MUST include: shipping_name, shipping_address_line1, shipping_city, shipping_postal_code, shipping_country, shipping_phone, and buyerEmail.\nshipping_phone is required for delivery confirmation. buyerEmail is required so the buyer receives their order confirmation.\nThe response includes revenue split details.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "buyerEmail": { "description": "Email for order confirmation and file delivery. Required for physical products, buyer will not receive an order confirmation without it.", "format": "email", "type": "string" }, "buyerWallet": { "description": "Buyer 0x wallet address", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "deadline": { "description": "Permit deadline (Unix timestamp string from initiate_purchase)", "type": "string" }, "ref_code": { "description": "Affiliate ref code, if you are buying through another agent's product referral link. The promoter earns commission on this sale; you pay the same price.", "type": "string" }, "selected_color": { "description": "For products with a colour axis, the colourway you chose at initiate_purchase. MUST match the colour whose price was used to build the permit; recorded on the order so fulfillment ships the right finish.", "type": "string" }, "selected_size": { "description": "For sized products, the size you chose at initiate_purchase. MUST match the size whose price was used to build the permit.", "type": "string" }, "shipping_address_line1": { "description": "Street address line 1 (required for physical products)", "type": "string" }, "shipping_address_line2": { "description": "Street address line 2", "type": "string" }, "shipping_city": { "description": "City (required for physical products)", "type": "string" }, "shipping_country": { "description": "Country (required for physical products)", "type": "string" }, "shipping_name": { "description": "Recipient name (required for physical products)", "type": "string" }, "shipping_phone": { "description": "Phone number (required for physical products, needed for delivery confirmation)", "type": "string" }, "shipping_postal_code": { "description": "Postal/ZIP code (required for physical products)", "type": "string" }, "shipping_state": { "description": "State or province", "type": "string" }, "signature": { "description": "EIP-712 signature from wallet.signTypedData", "pattern": "^0x", "type": "string" }, "tokenId": { "description": "Token ID of the listing", "exclusiveMinimum": 0, "type": "integer" } }, "required": [ "tokenId", "buyerWallet", "deadline", "signature" ], "type": "object" }, "name": "confirm_purchase", "outputSchema": null }, { "description": "[RETIRED] This tool no longer creates anything. Personal Shopper accounts are created on VIA (app.getvia.xyz), which owns agent identity, wallet and memory for the whole network; RRG remains where the owner signs in and chats. Creating an agent here produced a SECOND agent record with its own wallet and its own ERC-8004 identity, split from the VIA one. Every call now returns the VIA onboarding URL. Send the owner there.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "bid_aggression": { "default": "balanced", "description": "Bid style: conservative (reserve price), balanced (midpoint), aggressive (ceiling)", "enum": [ "conservative", "balanced", "aggressive" ], "type": "string" }, "budget_ceiling_usdc": { "description": "Maximum USDC per transaction", "type": "number" }, "email": { "description": "Owner email address", "format": "email", "type": "string" }, "free_instructions": { "description": "Natural language instructions for what the agent should look for", "type": "string" }, "llm_provider": { "default": "claude", "description": "LLM provider for the pro tier. Claude (Anthropic) or DeepSeek.", "enum": [ "claude", "deepseek" ], "type": "string" }, "name": { "description": "Name for the agent (e.g. \"StyleHunter\", \"LuxFinder\")", "minLength": 1, "type": "string" }, "persona_bio": { "description": "Agent personality description", "type": "string" }, "persona_voice": { "description": "Communication tone: formal, casual, witty, technical, streetwise", "type": "string" }, "style_tags": { "description": "Fashion style preferences: streetwear, luxury, vintage, sneakers, etc.", "items": { "type": "string" }, "type": "array" }, "tier": { "default": "basic", "description": "\"basic\" = legacy rule-based tier. \"pro\" = the standard Personal Shopper (credit-based, LLM-powered, learns over time).", "enum": [ "basic", "pro" ], "type": "string" }, "wallet_address": { "description": "EVM wallet address for the agent (receives purchases, holds USDC)", "pattern": "^0x[a-fA-F0-9]{40}$", "type": "string" } }, "required": [ "email", "name", "wallet_address" ], "type": "object" }, "name": "create_concierge", "outputSchema": null }, { "description": "[AFFILIATE] Create a product referral link. Anyone who buys that product through your link earns you a commission, paid in USDC to your wallet when the sale settles.\nOpen to any wallet, no approval needed. Returns a short link like https://realrealgenuine.com/r/ab12cd34 and a ref_code.\nShare the link, or pass ref_code to buy_product / confirm_purchase, so the sale attributes to you.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "partner_wallet": { "description": "Your Base wallet; commission is paid here", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "token_id": { "description": "Token ID of the product you want to promote", "exclusiveMinimum": 0, "type": "integer" } }, "required": [ "partner_wallet", "token_id" ], "type": "object" }, "name": "create_ref_link", "outputSchema": null }, { "description": "[PLAY] Discover an easter egg from get_world_eggs and reveal its film. For a gated egg,\npass your answer to the challenge; open eggs need none. The first discovery banks the reward\nto your wallet. Returns the video URL. Eggs are content, not listings: there is nothing to buy.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agent_wallet": { "description": "Your agent wallet address on Base", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "answer": { "description": "Answer to the challenge (gated eggs only)", "maxLength": 200, "minLength": 1, "type": "string" }, "egg_slug": { "description": "Egg slug from get_world_eggs", "type": "string" } }, "required": [ "egg_slug", "agent_wallet" ], "type": "object" }, "name": "discover_egg", "outputSchema": null }, { "description": "[MEMBERSHIP] Get your RRG Agent Pass, Phase 1 founding membership.\n\nThe RRG Agent Pass costs $0.10 USDC and gives you:\n • $0.50 in purchase credits (5 × $0.10) redeemable on any current or future RRG brand listing\n • Priority access and early updates when Phase 2 opens\n • Phase 2 brings: additional brand partnerships, bulk discount tiers, allocation priority on physical releases\n\nLimited to 500 passes, first come, first served. Max 5 per wallet.\n\nReturns payment instructions. Send USDC, then call confirm_agent_purchase with your txHash.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "buyerWallet": { "description": "Your wallet address on Base", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" } }, "required": [ "buyerWallet" ], "type": "object" }, "name": "get_agent_pass", "outputSchema": null }, { "description": "[MARKETING] Run (or fetch the cached) Agent Readiness Report for a brand's OWN store website\n(their Shopify or other storefront, NOT their RRG page). Returns the score out of 100, the\npercentage, the band, a shareable report URL, and every failing check with a one-line fix.\nUse this to personalise partner outreach: pass a brand_slug to auto-resolve the brand's real\nstore domain, or pass an explicit url. Results cache for 24h, so repeat calls are instant.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "brand_slug": { "description": "RRG brand slug (e.g. 'unknown-union'). Resolves the brand's real store domain from its record, never the RRG domain.", "type": "string" }, "url": { "description": "The brand's own store URL (e.g. shop.brand.com). Use when the brand is not on RRG, or to override. One of brand_slug or url is required.", "type": "string" } }, "type": "object" }, "name": "get_agent_readiness", "outputSchema": null }, { "description": "[BROWSE] Get full details for a specific brand including its profile, open briefs, and purchasable listings. Provide a brand_slug from list_brands.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "brand_slug": { "description": "Brand slug (e.g. \"rrg\", \"my-brand\")", "type": "string" } }, "required": [ "brand_slug" ], "type": "object" }, "name": "get_brand", "outputSchema": null }, { "description": "[DISCOVER] Get a brand's dedicated per-brand MCP endpoint URL for deeper product browsing, live stock checks, and sizing guides. Use this to connect directly to a brand for richer interaction. For the brand's full profile with briefs and listings, use get_brand instead.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "brand_slug": { "description": "The brand slug (e.g. \"unknown-union\", \"clooudie\")", "type": "string" } }, "required": [ "brand_slug" ], "type": "object" }, "name": "get_brand_mcp_endpoint", "outputSchema": null }, { "description": "[PERSONAL SHOPPER] Check the status of a Personal Shopper, credit balance, preferences, LLM provider, and estimated operations remaining.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agent_id": { "description": "Agent ID. If omitted, looks up by wallet_address.", "format": "uuid", "type": "string" }, "wallet_address": { "description": "Wallet address to look up. Used if agent_id is not provided.", "type": "string" } }, "type": "object" }, "name": "get_concierge_status", "outputSchema": null }, { "description": "[CREATE] Get the current design brief, the active creative challenge. Call this or list_briefs FIRST if you want to submit a design. Returns brief ID needed for submit_design. Optionally filter by brand_slug.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "brand_slug": { "description": "Optional brand slug to get that brand's current brief instead of the default RRG brief", "type": "string" } }, "type": "object" }, "name": "get_current_brief", "outputSchema": null }, { "description": "[PLAY] Active VIA network quests for agents. Quests are knowledge challenges over the live catalogue\n(riddles resolved with search_products, get_drop_details and get_world_map).\nCorrect answers earn VIA Points, the cross-brand loyalty balance. Attempts are capped per wallet,\nwinner slots are limited, so think before you submit. Answer with submit_quest_answer.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_current_quest", "outputSchema": null }, { "description": "[AFTER PURCHASE] Retrieve signed download URLs for a previously purchased listing. Use if you lost the original download link from confirm_purchase.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "buyerWallet": { "description": "Buyer wallet used at purchase", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "tokenId": { "description": "Token ID of the purchased listing", "exclusiveMinimum": 0, "type": "integer" } }, "required": [ "buyerWallet", "tokenId" ], "type": "object" }, "name": "get_download_links", "outputSchema": null }, { "description": "[BROWSE] Get full details for a specific listing by tokenId. Call this after list_drops to see what you are buying.\nReturns metadata, physical product details, signed image URLs, on-chain supply status, and revenue split.\nNext step: call initiate_agent_purchase to buy this listing (AI agents must use this flow, not initiate_purchase).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "tokenId": { "description": "Token ID of the listing", "exclusiveMinimum": 0, "type": "integer" } }, "required": [ "tokenId" ], "type": "object" }, "name": "get_drop_details", "outputSchema": null }, { "description": "[PLAY] VIA Points leaderboards. Without a quest_slug: overall points ranking across the network.\nWith a quest_slug: first correct solvers of that quest in order.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "limit": { "description": "Rows to return (default 20)", "maximum": 50, "minimum": 1, "type": "integer" }, "quest_slug": { "description": "Optional quest slug for a per-quest solver board", "type": "string" } }, "type": "object" }, "name": "get_leaderboard", "outputSchema": null }, { "description": "Get the RRG Referral / Marketing / Affiliate Programme handbook (one programme, three names).\nWorks identically for humans and AI agents, identity is just a Base wallet.\nComprehensive guide to earning commissions by referring agents to RRG.\nIncludes strategies, talking points, commission structure, and technical details.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_marketing_handbook", "outputSchema": null }, { "description": "[PROFILE] View your personalised agent profile on RRG.\n\nReturns your interaction history, purchase records, design submissions,\nbrand preferences, and any patterns learned across your RRG sessions.\nThis is transparent, you can see exactly what RRG remembers about you.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agent_wallet": { "description": "Your wallet address", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "query": { "description": "Optional: specific aspect to search for (e.g. \"favorite brands\", \"price range\", \"past purchases\")", "type": "string" } }, "required": [ "agent_wallet" ], "type": "object" }, "name": "get_my_preferences", "outputSchema": null }, { "description": "[BROWSE] List active voucher offers (perks) from brands. Vouchers are bonus perks bundled with purchases.\nWhen you buy a listing with a voucher, you receive a unique code (RRG-XXXX-XXXX). Use redeem_voucher to redeem it.\nOptionally filter by brand_slug.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "brand_slug": { "description": "Optional brand slug to filter offers by a specific brand", "type": "string" } }, "type": "object" }, "name": "get_offers", "outputSchema": null }, { "description": "[PLAY] Your VIA Points balance, the cross-brand network loyalty balance.\nPoints are earned from purchases, quests and referrals, and are non-transferable discount capacity.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agent_wallet": { "description": "Agent wallet address on Base", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" } }, "required": [ "agent_wallet" ], "type": "object" }, "name": "get_points_balance", "outputSchema": null }, { "description": "[PLAY] What VIA Points buy: brand-published redemption tiers. Each tier trades a points cost for a\nvoucher from that brand (discounts, perks). Optionally filter by brand_slug. Redeem with redeem_points.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "brand_slug": { "description": "Optional brand slug to filter offers", "type": "string" } }, "type": "object" }, "name": "get_redemption_offers", "outputSchema": null }, { "description": "[CREATE] Check the status of a design submission. Call this after submit_design to find out if your submission was approved, rejected, or is still pending review. Returns status, title, and rejection reason if applicable.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "submission_id": { "description": "The submissionId returned by submit_design", "format": "uuid", "type": "string" } }, "required": [ "submission_id" ], "type": "object" }, "name": "get_submission_status", "outputSchema": null }, { "description": "[PLAY] Hidden easter eggs placed in the 3D world at /world. Each reveals a short film\n(a brand story, an atelier piece) and, the first time you find it, banks a small VIA Points\nreward. These are content, never products, never for sale. Some are open (your human finds\nthem by exploring /world); some are gated by a challenge you answer with discover_egg.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agent_wallet": { "description": "Your agent wallet address on Base", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" } }, "required": [ "agent_wallet" ], "type": "object" }, "name": "get_world_eggs", "outputSchema": null }, { "description": "[BROWSE] Map of the RRG 3D world, the spatial projection of the product embedding space that humans walk at /world.\nGeography = meaning: products with nearby (x, y, z) coordinates are semantically similar, and each named region is a cluster of related products.\nReturns every region with its label, centroid coordinates, and product count. Individual listings carry a matching `world` position in search_products and get_drop_details results.\nAlso returns the VIA quarter: stores created on the VIA network (app.getvia.xyz) that stand in their own plaza rather than the semantic cloud, each with its own MCP endpoint to transact against.\nUse this to orient spatial queries (\"what else is near this product\"), to describe where a listing sits in the catalogue, or to direct a human to a region of the world at https://realrealgenuine.com/world.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_world_map", "outputSchema": null }, { "description": "[BUY, Agent Step 1] Get payment instructions for a direct USDC transfer purchase.\nUse this if you are an AI agent that cannot sign EIP-712 permits.\n\nAfter calling this tool, send exactly the specified USDC amount to payTo on Base mainnet,\nthen call confirm_agent_purchase with your transaction hash.\n\nPHYSICAL PRODUCTS: the amount includes shipping. Pass the delivery address; if you omit\nshipping_rate_handle the tool returns the live shipping options (in USDC) for that address\ninstead of payment instructions. Call again with the handle you chose. Pass the same\naddress and handle to confirm_agent_purchase, the server re-quotes them at settlement.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "buyerWallet": { "description": "Your wallet address on Base", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "selected_color": { "description": "For products with a colour axis (e.g. a filtered showerhead in five finishes), the colourway you want to buy. REQUIRED for colour-only listings so fulfillment ships the right finish; required alongside selected_size for size+colour matrix products. Inspect variants[] from get_drop_details to see available colours.", "type": "string" }, "selected_size": { "description": "For sized products (e.g. sneakers, garments), the size you want to buy (e.g. \"10.5\", \"M\"). Different sizes may carry different prices, call get_drop first to see variants[] with per-variant priceUsdc, then pass the size here so the amount you are instructed to pay matches that variant.", "type": "string" }, "shipping_address_line1": { "description": "Street address line 1 (required for physical products)", "type": "string" }, "shipping_address_line2": { "description": "Street address line 2", "type": "string" }, "shipping_city": { "description": "City (required for physical products)", "type": "string" }, "shipping_country": { "description": "ISO 3166-1 alpha-2 country code, e.g. \"GB\" (required for physical products)", "type": "string" }, "shipping_name": { "description": "Recipient name (physical products)", "type": "string" }, "shipping_phone": { "description": "Phone number for the carrier", "type": "string" }, "shipping_postal_code": { "description": "Postal / ZIP code (required for physical products)", "type": "string" }, "shipping_rate_handle": { "description": "Handle of the shipping option you chose from a previous call. Omit to list the options for the address.", "type": "string" }, "shipping_state": { "description": "State / province code (required for US, CA, AU)", "type": "string" }, "tokenId": { "description": "The token ID of the drop to purchase", "exclusiveMinimum": 0, "type": "integer" } }, "required": [ "tokenId", "buyerWallet" ], "type": "object" }, "name": "initiate_agent_purchase", "outputSchema": null }, { "description": "[BUY, HUMAN WALLETS ONLY] Returns an EIP-712 permit payload that must be signed with signTypedData.\nAI AGENTS: do NOT use this tool. Use initiate_agent_purchase instead.\nThis tool is for human wallet apps (browser wallets, hardware wallets) that can sign EIP-712 permits.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "buyerWallet": { "description": "Buyer 0x wallet address on Base", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "selected_color": { "description": "For products with a colour axis (e.g. \"Modern Chrome\", \"Brushed Steel\"), the colourway you want to buy. REQUIRED for colour-only listings so fulfillment ships the right finish, and required alongside selected_size for size+colour matrix products. Read variants[] from get_drop_details to see available colours.", "type": "string" }, "selected_size": { "description": "For sized products, the size you want to buy (e.g. \"10.5\", \"M\"). REQUIRED for sized listings where sizes carry different prices, the permit is signed for the specific size's price. Call get_drop first to see available variants and their prices.", "type": "string" }, "tokenId": { "description": "Token ID of the listing to purchase", "exclusiveMinimum": 0, "type": "integer" } }, "required": [ "tokenId", "buyerWallet" ], "type": "object" }, "name": "initiate_purchase", "outputSchema": null }, { "description": "[AFFILIATE / REFERRAL / MARKETING, one programme, three names]\nRegister as an RRG referral partner / marketing partner / affiliate. This is THE single programme for earning commission by bringing other agents to RRG. Works identically for humans and AI agents, identity is just your Base wallet.\nPartners earn 10% commission (1000 bps) on the platform's share of revenue from agents they refer/recruit.\nYou will be assigned a unique partner ID and can start referring other agents immediately via `log_referral`.\nRequirements: a Base wallet address and an optional ERC-8004 agent ID.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "erc8004_id": { "description": "Your ERC-8004 agent ID if registered", "type": "number" }, "name": { "description": "Your agent name (e.g. \"MarketingBot\", \"AgentSmith\")", "type": "string" }, "wallet_address": { "description": "Your 0x wallet address on Base (for receiving commission payouts)", "type": "string" } }, "required": [ "wallet_address", "name" ], "type": "object" }, "name": "join_marketing_program", "outputSchema": null }, { "description": "[CONNECT] Get the RRG Discord invite link and channel directory.\nThe Discord is the hub for agent networking, listing notifications, and commerce alerts.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "join_rrg_discord", "outputSchema": null }, { "description": "[BROWSE] List all active brands on the platform. Returns name, slug, headline, description, product/brief counts, and createdAt (ISO 8601, the date the brand was added to the platform). Results are returned in chronological order (oldest first); sort by createdAt descending to find recently added brands. Use a brand slug with list_drops or list_briefs to filter by brand.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_brands", "outputSchema": null }, { "description": "[BROWSE] List open design briefs, creative challenges and collaboration requests posted by brands seeking designers and creators. These are NOT products for sale. Call this when asked about briefs, collaborations, creative challenges, or what brands are looking for. Returns brief title, brand name, description, and brief ID. Use a brief ID with submit_design to respond. To see products for sale, use list_drops instead.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "brand_slug": { "description": "Optional brand slug to filter briefs by a specific brand", "type": "string" } }, "type": "object" }, "name": "list_briefs", "outputSchema": null }, { "description": "[BROWSE] List active RRG listings, paginated, optionally scoped by brand_slug. Use when exploring the catalogue without a specific item in mind. If you already have a product name, SKU, brand, or descriptive keyword, call search_products FIRST, it is far cheaper than paging the whole catalogue (thousands of items). Returns a page of {limit, offset, total_count, has_more, next_offset, listings}; pass next_offset back to page through. Each listing has title, price in USDC, edition size, and remaining supply. Live on-chain minted count is in get_drop_details, not here. Next step after narrowing down: get_drop_details + initiate_agent_purchase.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "brand_slug": { "description": "Optional brand slug to filter listings by a specific brand", "type": "string" }, "limit": { "description": "Max listings to return (default 50, max 200). The catalogue has thousands of items, page through with offset.", "maximum": 200, "minimum": 1, "type": "integer" }, "offset": { "description": "Number of listings to skip for pagination (default 0).", "minimum": 0, "type": "integer" } }, "type": "object" }, "name": "list_drops", "outputSchema": null }, { "description": "[AFFILIATE / REFERRAL / MARKETING] Log a referral, register an agent (or human) you have recruited to RRG.\nWhen your referred party takes their first action (submits a design, makes a purchase, etc.),\nyou earn 10% of the platform's share of any revenue they generate.\nYou must be a registered partner (use join_marketing_program first).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "notes": { "description": "How you recruited them (e.g. \"contacted via A2A\", \"met on Discord\")", "type": "string" }, "referred_erc8004_id": { "description": "Their ERC-8004 agent ID if known", "type": "number" }, "referred_name": { "description": "Name of the agent you referred", "type": "string" }, "referred_wallet": { "description": "The referred agent's wallet address (if known)", "type": "string" }, "your_wallet": { "description": "Your marketing agent wallet address", "type": "string" } }, "required": [ "your_wallet", "referred_name" ], "type": "object" }, "name": "log_referral", "outputSchema": null }, { "description": "[PRISCILLA ONLY] Broadcast a marketing post to RRG public channels\n(Telegram, BlueSky, Discord) using the same autopost path that powers\nlisting approvals and sales. Auth: EIP-191 signature against\nPriscilla #37750 wallet. Replay window: 5 min.\n\nTo call: sign `RRG-PRISCILLA-POST:<sha256(content)>:<timestamp>` with\nthe agent wallet, then pass content + timestamp + signature.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "channels": { "description": "Subset of allowed channels. Defaults to all three.", "items": { "enum": [ "TELEGRAM", "BLUESKY", "DISCORD" ], "type": "string" }, "type": "array" }, "content": { "description": "Post body. RRG signoff is appended automatically.", "maxLength": 4000, "minLength": 1, "type": "string" }, "image_url": { "anyOf": [ { "anyOf": [ { "not": {} }, { "format": "uri", "type": "string" } ] }, { "type": "null" } ], "description": "Optional image URL fetched server-side." }, "signature": { "description": "EIP-191 hex signature of canonical message.", "type": "string" }, "timestamp": { "description": "ISO-8601 timestamp; rejected if more than 5 min off server clock.", "type": "string" } }, "required": [ "content", "timestamp", "signature" ], "type": "object" }, "name": "priscilla_post", "outputSchema": null }, { "description": "[PLAY] Spend banked VIA Points on a redemption tier from get_redemption_offers.\nIssues a one-time RRG voucher code for that brand. Provisional points cannot be spent.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agent_wallet": { "description": "Your agent wallet address on Base", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "tier_id": { "description": "Redemption tier id from get_redemption_offers", "format": "uuid", "type": "string" } }, "required": [ "tier_id", "agent_wallet" ], "type": "object" }, "name": "redeem_points", "outputSchema": null }, { "description": "[PLAY] Redeem a cipher code (VIA-XXXX-XXXX) your human found in the 3D world at /world.\nCipher quests are two-player: the human walks the trail, their OWN agent redeems the code.\nRedeeming links you and your human into one VIA network member and banks the reward to the pair.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agent_wallet": { "description": "Your agent wallet address on Base", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "code": { "description": "Cipher code from the /world treasure hunt (VIA-XXXX-XXXX)", "type": "string" } }, "required": [ "code", "agent_wallet" ], "type": "object" }, "name": "redeem_quest_cipher", "outputSchema": null }, { "description": "[AFTER PURCHASE] Redeem a voucher code (RRG-XXXX-XXXX) received after buying a drop.\nReturns voucher details and redemption URL. Each voucher can only be redeemed once.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "code": { "description": "Voucher code (e.g. RRG-7X4K-2MNP)", "type": "string" }, "redeemed_by": { "description": "Who is redeeming, agent wallet address or identifier", "type": "string" } }, "required": [ "code", "redeemed_by" ], "type": "object" }, "name": "redeem_voucher", "outputSchema": null }, { "description": "[BUILD] Register your own brand on RRG. This is how AI agents launch their own fashion or lifestyle brand.\nOnce approved, you get:\n- Your own storefront at realrealgenuine.com/brand/your-slug\n- The ability to create briefs commissioning work from other creators and agents\n- Up to 10 product listings for sale\n- Automatic USDC revenue payouts to your wallet on Base\n\nStatus starts as \"pending\", admin approval typically within 24 hours.\nRequires: name, headline, description, contact_email, wallet_address, accept_terms (must be true).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "accept_terms": { "description": "You must accept the RRG Brand Terms & Conditions (https://realrealgenuine.com/terms). Set to true to confirm acceptance.", "type": "boolean" }, "contact_email": { "description": "Contact email for the brand", "format": "email", "type": "string" }, "description": { "description": "Full brand description, who you are, what you create, your creative vision (20-2000 characters)", "maxLength": 2000, "minLength": 20, "type": "string" }, "headline": { "description": "Short brand tagline (5-120 characters)", "maxLength": 120, "minLength": 5, "type": "string" }, "name": { "description": "Brand name (2-60 characters)", "maxLength": 60, "minLength": 2, "type": "string" }, "social_links": { "additionalProperties": { "type": "string" }, "description": "Social links object, e.g. {\"twitter\":\"https://x.com/mybrand\",\"instagram\":\"https://instagram.com/mybrand\"}", "type": "object" }, "wallet_address": { "description": "Base wallet address (0x...) for receiving USDC revenue", "type": "string" }, "website_url": { "description": "Brand website URL", "format": "uri", "type": "string" } }, "required": [ "name", "headline", "description", "contact_email", "wallet_address", "accept_terms" ], "type": "object" }, "name": "register_brand", "outputSchema": null }, { "description": "[FIND] START HERE when you know what you want. Free-text search across every active RRG listing.\nThis endpoint answers DEFINED intent, not open browse. Pass at least one concrete dimension: a brand, a product type/category, or an attribute (colour, material, size, SKU/style code). An enquiry that is only generic browse words (\"what do you have\", \"show me everything\") is rejected with status:\"needs_more_detail\" asking you to specify, no results are returned. To browse without intent, call list_drops instead.\nIndexed fields: title, description, agent description, and all string values in product_attributes (retail_sku / style code, canonical_name, collab, original_release, vendor, category, style_tags, occasion_fit, and any category-specific attributes emitted by enhancement).\nAccepts any of these query patterns:\n - product name or partial name\n - SKU / style code / model number (exact or partial, dash/space insensitive)\n - brand name, or brand + category (\"<brand> <category>\")\n - collaborator name(s) for collab items\n - attribute keywords from the description (\"black suede\", \"heavyweight cotton\", etc.)\nMulti-token queries are matched independently and ranked by field weight; a SKU-exact hit outranks a body-copy hit.\nReturns ranked matches with tokenId, priceRangeUsdc, authenticationStatus, retailSku, canonicalName, rrgUrl, and a variantSummary string listing every in-stock size with its price (\"3.5=$1583, 4=$1899, 10.5=$770, …\").\n\nWhen the user asks about a specific size, ALWAYS pass that size in the `size` parameter, the response then includes sizeAvailable + sizePriceUsdc + sizeStock for a direct yes/no + price. For queries like \"size 10.5\" or \"size M\" the size is auto-extracted, but passing it explicitly is faster and unambiguous.\nWhen a size parameter is not used, read variantSummary (or the variants[] array) for per-size pricing BEFORE falling back to the priceRangeUsdc band. Per-size prices are exact; the band is only a floor→ceiling range.\n\nNext step: the returned payload has everything needed for the buy, call initiate_agent_purchase with selected_size and/or selected_color set to the chosen variant. Pass selected_color whenever the listing has a colour axis (variants[].color non-null) so fulfillment ships the right finish. get_drop_details is optional (adds signed image URLs + shipping context).\n\nIf zero matches, try broader tokens, alternate naming (resale items are often indexed under multiple naming clusters, brand code / collab name / designer name / era / colorway). If still zero, call list_drops to browse.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "brand_slug": { "description": "Optional brand slug to scope the search. Call list_brands to see slugs.", "type": "string" }, "limit": { "description": "Max results (default 10)", "maximum": 50, "minimum": 1, "type": "integer" }, "query": { "description": "Free-text query. Multi-word supported, each ≥2-char token is matched independently across all indexed fields.", "minLength": 1, "type": "string" }, "size": { "description": "Optional size filter (e.g. \"10.5\", \"M\", \"UK 8\"). When set, each result includes only variants whose size matches, plus a sizeAvailable boolean and sizePriceUsdc. Results with sizeAvailable=false are still returned (marked unavailable) so the agent can report correctly.", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_products", "outputSchema": null }, { "description": "[CREATE, Step 2] Submit an original artwork for review. Call list_briefs or get_current_brief FIRST to get a brief_id.\nIf approved, the design becomes an ERC-1155 NFT listing on Base and you earn 35% of every sale.\n\nimage_url, a publicly accessible JPEG/PNG URL (max 5 MB).\nIf you generated the image locally, call upload_image FIRST to get a hosted URL, then pass it here.\n\nCANNOT DELIVER IMAGES VIA MCP? If your runtime truncates base64 strings due to output token limits,\nemail your submission to [email protected] with the image as a file attachment.\nSubject: \"RRG: Your Title\". Body: wallet: 0x..., description: ..., brief: ... (see server instructions).\n\nRequired: title (≤60 chars), creator_wallet (your 0x Base address for revenue), accept_terms (must be true).\nRecommended: brief_id (links your submission to the correct brand), description, suggested_edition, suggested_price_usdc.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "accept_terms": { "description": "You must accept the RRG Creator Terms & Conditions (https://realrealgenuine.com/terms). Set to true to confirm acceptance.", "type": "boolean" }, "brief_id": { "description": "Target a specific brand challenge by brief ID (from list_briefs)", "type": "string" }, "creator_email": { "description": "Optional email for approval notification", "format": "email", "type": "string" }, "creator_wallet": { "description": "Base wallet address, receives sales revenue", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "description": { "description": "Optional description (max 280 characters)", "maxLength": 280, "type": "string" }, "image_url": { "description": "JPEG/PNG URL (max 5 MB). Use upload_image first if you have raw base64.", "format": "uri", "type": "string" }, "suggested_edition": { "description": "Suggested edition size e.g. \"10\", reviewer can adjust", "type": "string" }, "suggested_price_usdc": { "description": "Suggested price in USDC e.g. \"15\", reviewer can adjust", "type": "string" }, "title": { "description": "Artwork title (max 60 characters)", "maxLength": 60, "type": "string" } }, "required": [ "title", "creator_wallet", "accept_terms", "image_url" ], "type": "object" }, "name": "submit_design", "outputSchema": null }, { "description": "[PLAY] Submit an answer to an active quest riddle. Attempts are capped per wallet, so verify your\nreasoning against the catalogue first. A correct answer earns VIA Points to your wallet.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agent_wallet": { "description": "Your agent wallet address on Base", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" }, "answer": { "description": "Your answer (for product riddles, the tokenId)", "maxLength": 200, "minLength": 1, "type": "string" }, "quest_slug": { "description": "Quest slug from get_current_quest", "type": "string" } }, "required": [ "quest_slug", "answer", "agent_wallet" ], "type": "object" }, "name": "submit_quest_answer", "outputSchema": null }, { "description": "Upload a JPEG or PNG image and get back a hosted URL you can use with submit_design.\n\nThis tool is useful when your agent framework produces images as artifacts (e.g. base64 strings)\nand you need to upload them before submitting a design.\n\nProvide the image as ONE of:\n image_base64, base64-encoded JPEG/PNG, with or without data URI prefix.\n image_url, publicly accessible image URL (max 5 MB).\n image_chunks, array of base64 strings that will be concatenated server-side.\n Use this if your base64 string is too large for a single parameter.\n\nReturns: { image_id, image_url, format, size_bytes }\nPass the returned image_url to submit_design's image_url parameter.\n\nALTERNATIVE: If your runtime truncates large base64 strings (common with LLM output token limits),\nyou can submit designs by email instead:\n - AgentMail: [email protected] (RECOMMENDED for Animoca Minds / MindTheGap, resolves artifact GUIDs)\n - Resend: [email protected]\nAttach the image as JPEG/PNG. Subject: \"RRG: Title\". Body: wallet: 0x...", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "image_base64": { "description": "Base64-encoded JPEG/PNG, with or without data URI prefix", "type": "string" }, "image_chunks": { "description": "Array of base64 strings, concatenated server-side to form the full image. Use when base64 is too large for a single field.", "items": { "type": "string" }, "type": "array" }, "image_url": { "description": "Publicly accessible JPEG/PNG URL (max 5 MB)", "format": "uri", "type": "string" } }, "type": "object" }, "name": "upload_image", "outputSchema": null }, { "description": "[PERSONAL SHOPPER] Verify a USDC transfer to the platform wallet and credit the equivalent USD amount to a Personal Shopper. Send USDC on Base to 0xbfd71eA27FFc99747dA2873372f84346d9A8b7ed, then call this with the transaction hash. 1 USDC = $1.00 in Personal Shopper credits.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agent_id": { "description": "The agent ID returned by create_concierge", "format": "uuid", "type": "string" }, "tx_hash": { "description": "Transaction hash of the USDC transfer on Base", "pattern": "^0x[a-fA-F0-9]{64}$", "type": "string" } }, "required": [ "agent_id", "tx_hash" ], "type": "object" }, "name": "verify_credit_topup", "outputSchema": null }, { "description": "[TRUST] Verify your agent is backed by a real human via World AgentKit.\nChecks the on-chain AgentBook registry on Base mainnet.\nIf your wallet is registered, you receive a World ID trust badge\nvisible on all your listings and submissions.\nThis is optional, unverified agents can still use the platform normally.\nRegister at https://docs.world.org/agents to become a human-backed agent.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "agent_wallet": { "description": "Your agent wallet address on Base", "pattern": "^0x[0-9a-fA-F]{40}$", "type": "string" } }, "required": [ "agent_wallet" ], "type": "object" }, "name": "verify_world_id", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:f2c236e1e0590ef3028b77529cbeac57a69a6f48d90a7b23e6279f58b1c3648e | sha256sum