The Skill & Tool Marketplace for AI Agents and Developers — Payments on Stellar via x402
SkillNet is a marketplace where developers buy and sell pre-built AI agent skills with instant USDC micropayments on Stellar. No subscriptions. No billing forms. No platform middleman. Just skills.
Built for the Stellar x402 Hackathon — April 2026.
Live Demo: https://skillnet-lilac.vercel.app/
Think npm meets Gumroad, but for AI agent skills.
Developers sell pre-built capabilities web scrapers, crypto price fetchers, blockchain tools, AI wrappers as downloadable skill packages. Buyers pay a small USDC fee per download using the x402 HTTP payment protocol on Stellar. The payment settles in under 5 seconds. The seller gets paid directly to their Stellar wallet. The platform takes zero cut.
The marketplace has two entrances:
- Human door — a clean React UI for browsing, buying and listing skills
- Agent door — a REST API that AI agents call autonomously to discover and purchase skills without human involvement
- Buyer clicks Buy Now on a skill
- Frontend calls
/api/download?id=skill-id - Server responds with HTTP 402 Payment Required + price + seller Stellar address
- Freighter wallet popup appears — buyer confirms payment
- USDC transfers on Stellar testnet in ~5 seconds
- Frontend sends transaction hash back to server
- Server verifies payment on Stellar testnet
- Server releases the skill download URL
- Zip file downloads to buyer's computer
For AI agents — steps 4 and 5 happen automatically. No human approval. No popup. The agent pays from its own Stellar wallet within pre-set spending limits.
SkillNet includes a standalone Node.js agent script that demonstrates fully autonomous skill acquisition:
cd agent
node index.js Crypto
node index.js Blockchain "Wallet Balance Checker"
node index.js AI "Document Summarizer"
node index.js Backend "CAC Company Lookup"The agent:
- Queries the SkillNet API to discover skills
- Selects the best rated skill in the category
- Calls the x402 download endpoint
- Receives HTTP 402 with payment details
- Automatically builds, signs and submits a Stellar USDC transaction
- Sends the transaction hash back for verification
- Receives the skill and executes it
- Delivers a report — all without human input
| Layer | Tool |
|---|---|
| Frontend | React + Vite |
| Styling | Tailwind CSS v4 |
| UI Components | shadcn/ui |
| Animations | Framer Motion |
| Routing | React Router v6 |
| Database | Supabase (PostgreSQL) |
| File Storage | Supabase Storage |
| Backend API | Vercel Serverless Functions |
| Payments | x402 Protocol + Stellar Testnet |
| Payment Currency | USDC on Stellar Testnet |
| Wallet | Freighter Browser Extension |
| Stellar SDK | @stellar/stellar-sdk v15 |
| Deployment | Vercel |
| Route | Description |
|---|---|
/ |
Home — hero, stats, how it works, categories, featured skills |
/catalog |
Browse all skills — search, category filter, skill cards |
/skills/:id |
Skill detail — full description, price, download button |
/list-skill |
Seller form — list a new skill for sale |
/dashboard |
Seller dashboard — earnings, downloads, listed skills |
| Endpoint | Method | Description |
|---|---|---|
/api/skills |
GET | Returns all skills. Accepts ?category= filter |
/api/skill |
GET | Returns single skill. Requires ?id= |
/api/categories |
GET | Returns all categories with skill counts |
/api/download |
GET | x402 payment gate. Returns 402 or download URL |
/api/list-skill |
POST | Saves new skill listing to database |
/api/dashboard |
GET | Returns seller stats. Requires ?address= |
/api/build-transaction |
POST | Builds Stellar payment transaction XDR |
/api/submit-transaction |
POST | Submits signed transaction to Stellar testnet |
SkillNet has 8 categories:
- Blockchain — smart contract readers, wallet checkers, transaction analyzers
- Crypto — price fetchers, fear & greed index, DeFi yield scanners
- AI — prompt optimizers, document summarizers, sentiment analyzers
- Web3 — ENS resolvers, NFT metadata fetchers, IPFS content fetchers
- Frontend — React component generators, CSS tools, layout analyzers
- Backend — API health checkers, web scrapers, database schema generators
- Product Design — persona generators, feature matrices, UX copy writers
- DeFi — Stellar and DeFi specific tools
This project was built for a hackathon with a 2-week deadline. The following data is mock/seeded and not real:
- 24 skill listings — seeded directly into Supabase with realistic names, descriptions, prices, ratings and download counts. These are not real submissions from real developers.
- Seller addresses — all 24 skills have been assigned a single test Stellar wallet address for payment testing purposes. In production, each seller would have their own unique address.
- Skill zip files — 6 real zip files were created and uploaded to Supabase Storage for the payment demo. The remaining 18 skills have no file attached (
file_url: null). - Download counts and ratings — hardcoded realistic numbers to make the catalog look populated.
- Stats bar — Total Skills (24), Active Sellers (12) are hardcoded. Total Downloads is calculated from the seeded data.
Everything else is real and functional:
- x402 payment flow is real and fires on Stellar testnet
- Stellar transactions are real and verifiable on the Stellar testnet explorer
- Supabase database is live and connected
- Seller form saves real listings to the database
- Wallet connection uses real Freighter extension
- Agent script makes real Stellar payments
- Node.js 18+
- Vercel CLI (
npm install -g vercel) - Freighter browser extension installed and set to Testnet
- Supabase account
- Stellar testnet wallet with USDC
git clone https://github.com/Prudentdev-xyz/skillnet.git
cd skillnetnpm installCreate a .env file in the root:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_URL=your_supabase_url
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
Create two tables in your Supabase project:
create table skills (
id uuid default gen_random_uuid() primary key,
name text not null,
short_description text not null,
full_description text not null,
category text not null,
price_usdc numeric(10, 4) not null,
seller_address text not null,
file_url text,
downloads integer default 0,
rating numeric(3, 2) default 0,
created_at timestamp with time zone default now()
);
create table sellers (
id uuid default gen_random_uuid() primary key,
stellar_address text unique not null,
total_earnings numeric(10, 4) default 0,
total_downloads integer default 0,
created_at timestamp with time zone default now()
);Create a Supabase Storage bucket called skill-files and set it to public.
vercel devApp runs at http://localhost:3000
cd agent
npm installCreate agent/.env:
AGENT_STELLAR_SECRET=your_agent_stellar_secret_key
SKILLNET_API_URL=http://localhost:3000
Run:
node index.js Crypto- Network: Stellar Testnet
- USDC Issuer:
GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5 - Horizon:
https://horizon-testnet.stellar.org - Explorer:
https://stellar.expert/explorer/testnet - Friendbot (free XLM):
https://friendbot.stellar.org/?addr=YOUR_ADDRESS - USDC Faucet:
https://faucet.circle.com
SkillNet implements the x402 HTTP payment standard manually:
- Client requests a resource
- Server returns
402 Payment Requiredwith payment details in JSON - Client reads the payment details and initiates a Stellar USDC transaction
- Client sends the transaction hash back in the
x-payment-txhashheader - Server verifies the transaction on Stellar testnet
- Server releases the resource
This is the core primitive that enables AI agents to pay for resources autonomously — no human approval, no API keys, no subscriptions.
skillnet/
├── agent/ # Autonomous agent demo script
│ ├── index.js # Main agent script
│ ├── .env # Agent environment variables
│ └── package.json
├── api/ # Vercel serverless functions
│ ├── supabase.js # Backend Supabase client
│ ├── skills.js # GET /api/skills
│ ├── skill.js # GET /api/skill
│ ├── categories.js # GET /api/categories
│ ├── download.js # x402 payment gate
│ ├── list-skill.js # POST /api/list-skill
│ ├── dashboard.js # GET /api/dashboard
│ ├── build-transaction.js # POST /api/build-transaction
│ └── submit-transaction.js # POST /api/submit-transaction
├── src/
│ ├── components/
│ │ ├── shared/
│ │ │ ├── Navbar.jsx
│ │ │ ├── Footer.jsx
│ │ │ ├── BuyButton.jsx
│ │ │ ├── PageWrapper.jsx
│ │ │ └── ScrollToTop.jsx
│ │ └── ui/ # shadcn components
│ ├── context/
│ │ └── WalletContext.jsx
│ ├── hooks/
│ │ └── usePayment.js
│ ├── lib/
│ │ └── supabase.js
│ ├── pages/
│ │ ├── Home.jsx
│ │ ├── Catalog.jsx
│ │ ├── SkillDetail.jsx
│ │ ├── ListSkill.jsx
│ │ └── Dashboard.jsx
│ ├── App.jsx
│ └── main.jsx
├── .env
├── vercel.json
└── README.md
- Stellar x402 Demo
- Stellar x402 Docs
- x402 Protocol Spec
- Coinbase x402 GitHub
- OpenZeppelin x402 Facilitator
- OpenZeppelin Relayer Docs
- OpenZeppelin Smart Account
MIT — built for the Stellar x402 Hackathon, April 2026.
Skills for developers. Tools for agents. Payments on Stellar.