Skip to content

YuAnReL/MeritProtocol

Repository files navigation

Merit Protocol

Merit Protocol 是一个把 Agent skills 变成可审核、可计量、可交易的 Skills Tokens 市场协议:创作者或 Agent 提交符合 agentskills.io 标准的 skill package,平台完成安全审核与访问结算,交易者围绕底层 skill 的调用需求和市场信号交易对应的 Skills Token。

当前仓库是 Solana + Next.js + Fastify + Prisma 的 monorepo,已经打通 webapishared、SQLite demo 数据和 Anchor 链上程序的本地联调链路。这版 README 重点说明本地启动、数据库初始化、demo 演示路径和主要 API 入口。

仓库结构

路径 作用
apps/web Next.js App Router 前端 demo,包含首页、市场、详情、上传、创作者页、管理台
apps/api Fastify API,负责 health、solana 配置、auth、skills、creator、admin 路由
packages/shared 前后端共享类型、常量和 API contract
prisma/schema.prisma Prisma schema,默认使用 SQLite,client 输出到 apps/api/generated/prisma
prisma/dev.db 本地 SQLite 数据库文件
programs/merit_protocol Anchor 链上程序
examples/merit-agent-access Merit 自己的 agentskills.io 接入 skill,内含 Node.js CLI,可供 Agent 安装后自动上传、发现、使用和下载 packages
docs 设计、任务拆分和本地演示说明

相关文档

本地快速开始

1. 环境要求

  • 推荐 Node.js 24+npm 11+
  • 当前仓库已在 Node v24.12.0npm 11.6.2 环境下核对过安装与 Prisma 初始化命令
  • 只有在你要跑 Anchor/链上测试时,才需要额外安装 Rust、Solana CLI、Anchor CLI

2. 安装依赖

npm install

3. 初始化环境变量

cp apps/api/.env.example apps/api/.env
cp apps/web/.env.example apps/web/.env.local

apps/api/.env 里最重要的几个字段:

变量 默认值 说明
HOST 0.0.0.0 API 监听地址
PORT 4000 API 端口
DATABASE_URL 留空 可选覆盖;默认直接使用 prisma/schema.prisma 里定义的 prisma/dev.db
DEMO_ADMIN_WALLETS 空字符串 本地 demo 可留空;留空时开发环境允许自动 bootstrap 一个 admin
SOLANA_CLUSTER devnet 返回给前端的 cluster 配置
PROGRAM_ID 示例 Program ID 前后端展示使用

apps/web/.env.local 里最重要的几个字段:

变量 默认值 说明
NEXT_PUBLIC_API_URL http://localhost:4000 Web 调用 API 的基地址
NEXT_PUBLIC_SOLANA_CLUSTER devnet 前端展示与钱包连接使用
NEXT_PUBLIC_PROGRAM_ID 示例 Program ID 前端展示使用

4. 初始化数据库

npm run db:generate -w @merit/api
npm run db:push -w @merit/api
npm run db:seed -w @merit/api

说明:

  • Prisma schema 固定在 prisma/schema.prisma
  • Prisma Client 会生成到 apps/api/generated/prisma
  • 本地数据库文件默认是 prisma/dev.db
  • db:push 负责同步表结构,db:seed 会写入一套可直接演示的 marketplace 数据

常用补充命令:

npm run db:studio -w @merit/api
npm run db:migrate -w @merit/api

db:migrate 适合你自己修改 schema 后创建新迁移;只想把现有 schema 同步到本地 demo 库时,优先用 db:push

5. 启动 API 和 Web

推荐开两个终端分别启动,排查日志会更方便:

npm run dev -w @merit/api
npm run dev -w @merit/web

也可以直接在根目录一起启动:

npm run dev

默认入口:

Agent 自动接入 Skill

仓库内已经提供一个符合 agentskills.io 基础结构的 Merit 接入 skill:

examples/merit-agent-access
examples/merit-agent-access.zip

这个 skill 内置 scripts/merit-agent.js,可在 Node.js 环境中调用当前 Merit API:

node examples/merit-agent-access/scripts/merit-agent.js list --limit 10
node examples/merit-agent-access/scripts/merit-agent.js submit-package ./my-skill.zip
node examples/merit-agent-access/scripts/merit-agent.js use repo-review-copilot --merit 0.1

本地开发环境可以用 login --wallet <wallet> 获取 demo session;生产环境需要使用真实钱包签名登录得到的 MERIT_SESSION_TOKEN。Node.js Skills 插件仓库的上传发布由后续发布流程处理。

Demo 演示有两种模式

模式 A:只跑 Web,看内置 demo 数据

如果你只启动 apps/web,或者 Web 访问不到 API,前端会自动退回本地 demo 数据,适合快速看视觉、页面结构和产品叙事。

推荐直接访问这些页面:

  • /
  • /market
  • /skills/repo-review-copilot
  • /creator
  • /upload
  • /admin

模式 B:跑 Web + API + SQLite,看真实接口 + 预置 demo 数据

如果你在初始化数据库后额外执行了 npm run db:seed -w @merit/api,前端会直接展示预置的 creators 和 6 个 listed developer skills。当前 seeded skills 和上传示例统一使用 0.1 MERIT 作为 usage fee。

推荐按这条路径演示:

  1. 打开 /market,确认 seeded 的 developer skills 已出现
  2. 打开 /creator,查看预置 creator portfolio
  3. 打开 /admin,确认管理台能读取真实 API 数据
  4. 打开 /skills/repo-review-copilot/skills/solana-tx-debugger
  5. 在详情页右侧动作面板模拟一次 use
  6. 如果正在跑 localnet,调用 POST /v1/skills/sync-listed-pools,让 seeded skills 重新注册链上池子并开启交易报价

补充说明:

  • 上传页现在只要求提交 agentskills package。选择 .zip 后,前端会在浏览器本地解析 SKILL.md 生成即时 metadata 预览;点击提交安全审核时才触发钱包签名、上传 package,并由后端重新解析和安全校验。
  • package upload 和 create skill 都需要钱包 session。开发环境的 API 仍支持 demo verify,方便用脚本拿 session token 做 smoke test。
  • 管理台默认用内置 demo admin wallet 调 review / buyout;如果 DEMO_ADMIN_WALLETS 留空,本地开发环境会自动允许这个 admin 身份
  • 详情页动作面板的 wallet 输入框是可选的,不填时会使用内置 demo user wallet
  • 当前 /admin 的 buyout 看板只会显示 Buyout WatchPublic 或累计使用量足够高的 skill;刚新建的 skill 通常不会立刻出现在这个列表里
  • 如果你跳过 db:seed,Web 仍然会优先展示真实 API 的空库结果;这时可以改走“上传一条 skill 再审核”的空库演示路径

主要页面

页面 路径 说明
首页 / 分页式协议叙事:Merit Protocol、知识流动性、接入方式、市场概览、精选 Skills Tokens
市场页 /market 浏览和筛选可交易 Skills Token 标的
Skill 详情 /skills/[id] 价格和买卖优先,展示底层 skill 基本面与 skill ID
创作者页 /creator 查看当前钱包 portfolio、收益和状态,属于辅助界面
上传页 /upload 临时人工提交入口;只提交 agentskills package,metadata 从 package 内 SKILL.md 自动提取
管理台 /admin 安全审核关口,重点查看 package、checksum、描述清晰度,并批准/拒绝

主要 API

所有 API 入口都在 apps/api/src/routes

方法 路径 说明
GET /health API 健康检查
GET /v1/solana/config 返回 cluster、programId、rpcUrl
POST /v1/auth/challenge 生成钱包登录 challenge
POST /v1/auth/verify 校验 challenge;开发环境允许 demo 模式不带签名
GET /v1/skills 列出 skills,支持 statuscategorycreatorWalletqlimitoffset
GET /v1/skills/:idOrSlug skill 详情
POST /v1/skills/package-upload 钱包 session 下上传 .zip / .tgz / .tar.gz package,后端校验 agentskills.io 结构并生成临时 manifest
POST /v1/skills packageUploadId 创建待审核 skill;name、description、category、token symbol 以后端解析的 SKILL.md 为准
GET /v1/skills/:idOrSlug/package package download 交付入口;需要 creator/admin 或已结算 usage access
POST /v1/skills/:idOrSlug/review 审核 skill,支持 approverejectpauselist
POST /v1/skills/:idOrSlug/use 记录一次 skill 使用并完成 demo 分账
POST /v1/skills/:idOrSlug/buyout 执行 demo buyout,把 skill 切到公共模式
GET /v1/creators 列出已有作品的 creators
GET /v1/creators/:walletAddress/dashboard 查询某个 creator 的 dashboard
GET /v1/admin/reviews 查询管理员审核队列

admin 相关补充:

  • GET /v1/admin/reviews 可以带 walletAddress 查询参数
  • POST /reviewPOST /buyout 依赖 demo admin 逻辑
  • DEMO_ADMIN_WALLETS 为空且 NODE_ENV=development 时,本地环境会允许自动创建 admin 用户,方便演示

常用命令

npm run build
npm run typecheck
npm run db:generate
npm run db:push
npm run db:seed
npm run db:studio -w @merit/api

如果你要继续验证链上部分,再额外安装 Rust / Solana / Anchor 后运行:

npm run test:program

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors