# Send Niche - Peer to Peer Trading Cards Marketplace to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "niche",
    "name": "Niche - Peer to Peer Trading Cards Marketplace",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/ClementSutjiatma/niche",
    "canonicalUrl": "https://clawhub.ai/ClementSutjiatma/niche",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/niche",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=niche",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "skill.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "niche",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T18:29:48.490Z",
      "expiresAt": "2026-05-07T18:29:48.490Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=niche",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=niche",
        "contentDisposition": "attachment; filename=\"niche-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "niche"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/niche"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/niche",
    "downloadUrl": "https://openagent3.xyz/downloads/niche",
    "agentUrl": "https://openagent3.xyz/skills/niche/agent",
    "manifestUrl": "https://openagent3.xyz/skills/niche/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/niche/agent.md"
  }
}
```
## Documentation

### Niche v1 — Trading Card Marketplace with Partial Deposits

A peer-to-peer trading card marketplace where users list, discover, and transact cards with partial USDC deposits on Base Sepolia. Meet in person to inspect cards before completing payment.

### Architecture

Hosted backend on Supabase Edge Functions. The CLI is a thin HTTP client — all heavy logic (auth, signing, escrow, on-chain transactions) runs server-side.

CLI (thin client)          →  Edge Functions (Supabase)
  fetch() + open()              niche-api   (REST API)
  ~/.niche/auth.json            niche-ui    (hosted HTML pages)
  @supabase/supabase-js         niche-sign  (passkey signing)
  open (browser launcher)       niche-escrow (on-chain ops)

Hosted UI: https://niche-ddq89ltdk-clement-sutjiatmas-projects.vercel.app

Anyone with the link can browse cards — no install needed.

### Why Partial Deposits + In-Person Inspection

Partial deposits — Hold a card with just $10-50 deposit, not full price
Meet & inspect — See the card condition in person before final payment
Atomic payment — Buyer confirms + pays remaining amount in single action
USDC escrow — All funds secured on-chain, released when both confirm
Buyer cancellation — Get full refund before seller confirms meetup
Passkey signing — Touch ID / Face ID to authorize transactions
Gas sponsored — No ETH needed for transactions
Shareable links — Send card URLs to anyone, no app needed

### Trading Card Flow

1. Seller lists "Charizard Base Set" for $50 with $10 min deposit
2. Buyer deposits $10 USDC → card is held for buyer
3. Buyer can cancel anytime before seller confirms → full $10 refund
4. Both parties meet in person to inspect card
5. Seller confirms they showed up
6. Buyer confirms AND pays $40 remaining (atomic action)
7. Backend releases total $50 to seller

### Browse (no account needed)

niche search --category "Pokemon" --max-price 100
niche browse                              # Open listings in browser
niche browse --category "Magic"           # Filtered browser view
niche view <id>                           # Open card detail in browser
niche show <id>                           # View card detail in terminal

### Authentication

niche login       # Opens browser → email OTP → passkey → wallet created
niche logout      # Clear local session
niche whoami      # Show identity + wallet + USDC balance

Login happens entirely in the hosted UI. The browser handles:

Email → OTP verification (Privy)
Passkey registration (Touch ID / Face ID)
Embedded wallet creation (server-side)

### Listings

niche post --item-name "Charizard Base Set" --price 50 --min-deposit 10 --category "Pokemon"
niche list                    # Your listings
niche cancel <id>             # Cancel listing

### Watches

niche watch --category "Pokemon,Magic" --max-price 100
niche watches                 # List active watches
niche unwatch <id>            # Remove watch
niche check-matches           # Check for new matches (cron)

### Deposits & Payments

niche interest <id>           # Opens deposit page in browser (passkey signing)
niche confirm <id>            # Confirm meetup + pay remaining (buyer) OR confirm meetup (seller)
niche cancel <id>             # Cancel deposit and get refund (buyer only, before seller confirms)
niche dispute <id>            # File dispute, hold funds
niche escrow [id]             # View payment status
niche balance                 # Check wallet USDC + ETH balance
niche fund [amount]           # Open Circle faucet for testnet USDC

### Testing

niche post --item-name "Pikachu" --price 25 --min-deposit 5 --simulate seller1
niche interest abc123 --simulate buyer1
niche confirm abc123 --simulate buyer1
niche confirm abc123 --simulate seller1

### Authentication Requirements

ActionWithout LoginWith LoginSearch / browse✅ Works✅ WorksPost listings✅ With simulate✅ WorksPlace deposit❌ REQUIRES LOGIN✅ Real USDC depositConfirm + pay❌ REQUIRES LOGIN✅ Completes purchaseCancel deposit❌ REQUIRES LOGIN✅ Get refundDispute❌ REQUIRES LOGIN✅ Holds fundsFund wallet❌ REQUIRES LOGIN✅ Faucet

### User Journey

1. BROWSE — niche search / niche browse (no account)
2. VIEW   — niche view <id> (opens hosted page)
3. LOGIN  — niche login (browser: email → OTP → passkey → wallet)
4. FUND   — niche fund 50 (Circle faucet → testnet USDC)
5. DEPOSIT — niche interest <id> (browser: passkey signs $10 deposit)
6. MEET   — Schedule in-person inspection
7. SELLER CONFIRMS — niche confirm <id> (seller acknowledges meetup)
8. BUYER CONFIRMS + PAYS — niche confirm <id> (buyer: passkey signs $40 remaining)
9. RELEASED — Backend releases total $50 to seller

### First-Time User

User: "Find me a Charizard card under $100"

Agent runs: niche search --category "Pokemon" --item-name "Charizard" --max-price 100

Agent: "Found 2 Charizard cards! Here are the results:
  1. [a1b2c3d4] Charizard Base Set 1st Edition - $50 (min deposit: $10)
  2. [e5f6g7h8] Charizard EX Full Art - $85 (min deposit: $20)

Want to see any in your browser? Or interested in one?"

User: "I'm interested in #1"

Agent runs: niche whoami

Agent: "You'll need to login first. Opening the login page..."

Agent runs: niche login

Agent: "Complete the email verification and passkey setup in your browser.
        Once done, run \`niche whoami\` to verify."

### Deposit Flow

User: "Place deposit on listing a1b2c3d4"

Agent runs: niche interest a1b2c3d4

Agent: "Opening the deposit page in your browser.
        Sign with your passkey (Touch ID) to deposit $10 USDC.
        You'll pay the remaining $40 when you meet and confirm."

### Buyer Confirmation + Payment

User: "I met the seller and the card is perfect. Complete the purchase."

Agent runs: niche confirm a1b2c3d4

Agent: "Opening the confirmation page in your browser.
        Sign with your passkey to:
        1. Confirm you inspected the card
        2. Pay the remaining $40 USDC

        The seller will receive the total $50 once both confirm."

### Cancellation

User: "I need to cancel my deposit on listing a1b2c3d4"

Agent runs: niche cancel a1b2c3d4

Agent: "Cancelling your deposit. You'll get your full $10 USDC back.
        (Note: You can only cancel before the seller confirms meetup)"

### Tips for Agents

Auto-login for deposits — Before niche interest, check niche whoami. If not logged in, run niche login.
Always check setup — Run niche whoami to see if user is configured.
Offer to watch — If search returns no results, offer niche watch.
Show listing IDs — Users need IDs for interest/confirm/view.
Explain partial deposits — Users deposit minimum amount, pay rest at meetup.
Prompt before confirming — Confirming as buyer = paying remaining amount (real funds).
Prompt before interest — Deposits real USDC to escrow.
--simulate is for demos only — Only use when user explicitly asks to test.
Browser commands — niche login, niche interest, niche confirm (buyer), niche fund, niche browse, niche view all open the browser.
Terminal commands — niche search, niche show, niche whoami, niche balance, niche confirm (seller) stay in terminal.
Cancellation window — Buyers can cancel anytime before seller confirms meetup.

### Sample Trading Cards (15 Available)

Pokemon (5 cards):

Charizard Base Set 1st Edition - $50 (min: $10)
Blastoise Base Set - $30 (min: $8)
Pikachu Illustrator - $150 (min: $50)
Mewtwo EX Full Art - $25 (min: $5)
Rayquaza VMAX Rainbow - $40 (min: $10)

Magic: The Gathering (4 cards):

Black Lotus Alpha - $200 (min: $75)
Mox Sapphire - $100 (min: $30)
Tarmogoyf Future Sight - $35 (min: $10)
Liliana of the Veil - $45 (min: $12)

Sports (4 cards):

Michael Jordan 1986 Fleer Rookie - $120 (min: $40)
Tom Brady 2000 Playoff Contenders Auto - $80 (min: $25)
Mike Trout 2009 Bowman Chrome Auto - $60 (min: $20)
LeBron James 2003 Topps Chrome Rookie - $55 (min: $15)

Yu-Gi-Oh (2 cards):

Blue-Eyes White Dragon 1st Edition - $28 (min: $8)
Dark Magician Girl MFC 1st - $22 (min: $6)

### Testnet & On-Chain

All transactions use real on-chain USDC on Base Sepolia testnet. No real funds at risk.

USDC (Base Sepolia): 0x036CbD53842c5426634e7929541eC2318f3dCF7e
Gas is sponsored — users don't need ETH
Get testnet USDC: https://faucet.circle.com (select Base Sepolia)

### Error Handling

ErrorAgent ResponseNot logged inRun niche login to open browser auth.No walletLogin creates a wallet automatically.Insufficient USDCRun niche fund to get testnet USDC from Circle faucet.Listing not foundCheck ID, or run niche search again.Already confirmedWaiting for other party.Cannot cancelSeller already confirmed. Buyer can only cancel before seller confirms.On-chain tx failedTry again; escrow Edge Function handles retries.

### Data Storage

Supabase Postgres — Users, listings, watches, escrows (with partial deposit tracking)
Supabase Vault — Privy secrets, escrow private key
Edge Functions — All server-side logic (Deno runtime)
Local — ~/.niche/auth.json (auth token + wallet), ~/.niche/config.json (legacy)

### Key Differences from v0 (Housing)

Partial deposits — Deposit only minimum amount, not full price
Atomic confirmation + payment — Buyer confirms and pays remaining in single action
Buyer cancellation — Full refund before seller confirms
In-person inspection — Meet to verify card condition before completing purchase
Trading cards — Pokemon, Magic, Sports, Yu-Gi-Oh instead of housing
Categories — Card categories instead of neighborhoods
Simplified UI — Less "escrow" jargon, clearer payment flow
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: ClementSutjiatma
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-30T18:29:48.490Z
- Expires at: 2026-05-07T18:29:48.490Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/niche)
- [Send to Agent page](https://openagent3.xyz/skills/niche/agent)
- [JSON manifest](https://openagent3.xyz/skills/niche/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/niche/agent.md)
- [Download page](https://openagent3.xyz/downloads/niche)