关于 1ly MCP Server
1ly MCP Server 将 AI Agent 接入 1ly.store API 市场,用于发现、购买和销售 API 服务,也可发行及交易代币。它支持 Solana 和 Base 上的加密货币支付。
主要功能
- 01搜索 API 并查看详情
- 02通过加密货币支付调用付费 API
- 03创建商店和付费 API 链接
- 04评价购买记录
- 05发行并交易 Bags.fm 代币
- 06设置单次和每日支出上限
适用场景
- 01按查询词和价格查找 API
- 02调用市场中的付费 API
- 03发布可收费的 API 端点
- 04发行代币并领取费用分成
MCP 相关
该服务向 MCP 客户端提供买方、卖方、评价和代币工具。默认使用 stdio,也可选择 HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @1ly/mcp-serverONELY_WALLET_SOLANA_KEY密钥Path to Solana keypair JSON file (e.g. /home/user/.1ly/wallets/solana.json) or inline JSON byte array. Required for paid API calls and token tools (launch, trade, claim). Note: Claude Desktop does not expand ~, use absolute paths.ONELY_WALLET_EVM_KEY密钥Path to EVM private key file or 0x-prefixed hex string. Required for payments on Base network.ONELY_API_KEY密钥1ly.store seller API key. Auto-saved locally after running the 1ly_create_store tool — you do not need to set this manually. Required for seller tools: manage links, stats, withdrawals, keys, and profile.ONELY_WALLET_PROVIDERWallet provider to use. 'raw' (default) uses local key files via ONELY_WALLET_SOLANA_KEY or ONELY_WALLET_EVM_KEY. 'coinbase' uses Coinbase Agentic Wallet (Base network only, requires the wallet app running locally).ONELY_NETWORKPreferred blockchain network for payments. 'solana' (default) or 'base'. Determines which wallet is used when an API supports both networks.ONELY_SOLANA_RPC_URLSolana RPC endpoint URL. Defaults to https://api.mainnet-beta.solana.com. Use a private RPC (e.g. Helius, Quicknode) for better reliability and rate limits.ONELY_BUDGET_PER_CALLMaximum USD amount allowed per single paid API call. Defaults to 1.00. The server will refuse any call priced above this limit.ONELY_BUDGET_DAILYMaximum total USD spending per calendar day (UTC). Defaults to 50.00. Resets at UTC midnight. The server will refuse calls that would exceed this limit.ONELY_BUDGET_STATE_FILEPath to the local JSON file used to track daily spending. Defaults to ~/.1ly-mcp-budget.json. Created automatically with owner-only permissions (0600).ONELY_SOLANA_DRY_RUNSet to '1' to simulate Solana transactions without broadcasting to the blockchain. Returns a fake signature. Use for testing only — no real payments will be made.ONELY_API_BASEOverride the 1ly.store API base URL. Defaults to https://1ly.store. Only http://localhost:PORT is accepted as an alternative (for local development). Do not change in production.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
23收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 搜索词(例如,“weather api”、“image generation”) |
| type | enum | 否 | 按链接类型筛选:'api' 表示 API 端点,'standard' 表示数字产品api | standard |
| maxPrice | number | 否 | USD 计价的最高价格 |
| minPrice | number | 否 | 最低价格(美元) |
| limit | number | 否 | 结果数量(默认:10,最多:50) |
详细介绍
@1ly/mcp-server
适用于 1ly.store 的 MCP 服务——让 AI Agent 能够使用加密货币发现、购买和销售 API。
概述
此 MCP 服务让 AI Agent 能够:
- 购买 — 搜索、发现并支付 API/资源费用,自动完成加密货币支付(x402 协议)
- 销售 — 创建商店,列出付费 API 端点或资源,并收取款项
- 发行代币 — 在 Bags.fm 上创建和交易代币,并领取手续费分成
支持的网络: Solana(主网)、Base(主网)
支付货币: USDC 和 $1LY(仅限 Solana)
这是什么?
此 MCP 服务让 AI Agent(Claude、GPT、Cursor 等)能够:
- 在 1ly.store 上创建商店
- 使用 1ly 作为支付层,为你的 API/资源收款
- 创建付费链接,让任何兼容 x402 的 Agent 都能调用并自动付款
- 在 1ly 市场上列出付费链接,方便 Agent 即时发现
- 在 1ly.store 上搜索 API 和服务
- 获取定价、评价和使用情况的详情
- 安全地调用付费 API,并自动完成加密货币支付(x402 协议)
- 购买后留下评价(可选,但推荐)
- 在 Bags.fm 上发行代币、交易 Solana 代币并领取手续费
快速开始
钱包路径规则: 钱包文件必须位于你的主目录(推荐)或 /tmp 中。出于安全考虑,其他位置的路径将被拒绝。直接从终端运行时支持 ~/,并会将其展开为你的主目录。
重要: Claude Desktop 和 Cursor 的配置 JSON 不会展开 ~。在 JSON 配置文件中始终使用绝对路径(例如 /Users/yourname/.1ly/wallets/solana.json)。
1. 安装并运行
选项 A:原始钱包(默认)
# Solana wallet
ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" npx @1ly/mcp-server
# OR Base/EVM wallet
ONELY_WALLET_EVM_KEY="~/.1ly/wallets/evm.key" npx @1ly/mcp-server
# OR both wallets
ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" \
ONELY_WALLET_EVM_KEY="~/.1ly/wallets/evm.key" \
npx @1ly/mcp-server
选项 B:Coinbase Agentic Wallet(仅限 Base)
ONELY_WALLET_PROVIDER="coinbase" npx @1ly/mcp-server
使用 Agentic Wallet 时,不要传入原始私钥。
确保 Coinbase Agentic Wallet 应用正在运行且已通过身份验证。
如果你尚未安装 Agentic Wallet:
- 按照 Coinbase Agentic Wallet 文档操作:docs.cdp.coinbase.com/agentic-wallet/welcome
- 快速安装:
npx skills add coinbase/agentic-wallet-skills
npx awal show
选项 C:DCP Local(推荐用于安全签名)
# Start DCP locally
dcp init
npx @dcprotocol/server
# Run MCP (auto-detects DCP at localhost:8420)
npx @1ly/mcp-server
选项 D:DCP Remote(中继)
# Pairing outputs these values
DCP_VAULT_ID="vault_..." \
DCP_RELAY_URL="wss://relay.dcp.1ly.store" \
DCP_VAULT_HPKE_PUBLIC_KEY="base64..." \
npx @1ly/mcp-server
2. 验证设置
ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" npx @1ly/mcp-server --self-test
配置
HTTP 模式(云端 MCP)
通过 HTTP 运行 MCP(用于云端托管或 mcp.1ly.store):
# HTTP transport
MCP_TRANSPORT=http npx @1ly/mcp-server
# Custom host/port
MCP_TRANSPORT=http MCP_HTTP_HOST=0.0.0.0 MCP_HTTP_PORT=3000 npx @1ly/mcp-server
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
ONELY_WALLET_SOLANA_KEY | 否 | Solana 密钥对 JSON 文件的路径,或内联 JSON 数组 |
ONELY_WALLET_EVM_KEY | 否 | EVM 私钥文件的路径,或内联十六进制密钥(带或不带 0x) |
ONELY_API_KEY | 否 | 卖家工具的 API 密钥。在 1ly_create_store 后自动加载 |
ONELY_BUDGET_PER_CALL | 否 | 每次 API 调用的最高美元金额(默认值:1.00) |
ONELY_BUDGET_DAILY | 否 | 每日美元支出限额(默认值:50.00) |
ONELY_BUDGET_STATE_FILE | 否 | 本地预算状态文件的路径(默认值:~/.1ly-mcp-budget.json) |
ONELY_NETWORK | 否 | 首选网络:solana 或 base(默认值:solana) |
ONELY_SOLANA_RPC_URL | 否 | Solana RPC URL(默认值:https://api.mainnet-beta.solana.com) |
ONELY_API_BASE | 否 | API 基础 URL(默认值:https://1ly.store) |
ONELY_WALLET_PROVIDER | 否 | raw(默认值)或 coinbase(Agentic Wallet,仅限 Base) |
ONELY_SOLANA_DRY_RUN | 否 | 设置为 1 可模拟 Solana 交易而不广播。不会进行真实支付。仅供测试。 |
MCP_TRANSPORT | 否 | 设置为 http 可运行 HTTP MCP 服务(默认值:stdio) |
MCP_HTTP_HOST | 否 | HTTP MCP 服务的主机(默认值:0.0.0.0) |
MCP_HTTP_PORT | 否 | HTTP MCP 服务的端口(默认值:3000) |
DCP_VAULT_ID | 否 | DCP 中继的 Vault ID(远程模式) |
DCP_RELAY_URL | 否 | 中继 URL(例如:wss://relay.dcp.1ly.store) |
DCP_RELAY_TOKEN | 否 | 中继配对令牌(如有需要) |
DCP_VAULT_HPKE_PUBLIC_KEY | 否 | Vault 的 Base64 HPKE 公钥(远程模式) |
DCP_RELAY_PLAINTEXT | 否 | 设置为 1 可禁用 HPKE(仅限开发环境) |
仅付费调用需要钱包。免费搜索和详情查询无需钱包即可运行。
请使用以下其中一项:ONELY_WALLET_SOLANA_KEY、ONELY_WALLET_EVM_KEY 或 ONELY_WALLET_PROVIDER=coinbase。
Claude Desktop 配置
将以下内容添加到 claude_desktop_config.json:
{
"mcpServers": {
"1ly": {
"command": "npx",
"args": ["@1ly/mcp-server"],
"env": {
"ONELY_WALLET_SOLANA_KEY": "/Users/yourname/.1ly/wallets/solana.json",
"ONELY_BUDGET_PER_CALL": "1.00",
"ONELY_BUDGET_DAILY": "50.00"
}
}
}
}
注意: 将
/Users/yourname替换为你的实际主目录。在 Linux 上使用/home/yourname。在 Claude Desktop 配置中,~无效。
Base/EVM 钱包配置
{
"mcpServers": {
"1ly": {
"command": "npx",
"args": ["@1ly/mcp-server"],
"env": {
"ONELY_WALLET_EVM_KEY": "/Users/yourname/.1ly/wallets/evm.key",
"ONELY_BUDGET_PER_CALL": "1.00",
"ONELY_BUDGET_DAILY": "50.00"
}
}
}
}
Cursor 一键安装
Cursor 使用 .cursor/mcp.json。如果你更喜欢手动配置,请使用:
{
"mcpServers": {
"1ly": {
"command": "npx",
"args": ["@1ly/mcp-server"],
"env": {
"ONELY_WALLET_SOLANA_KEY": "/absolute/path/to/solana.json",
"ONELY_BUDGET_PER_CALL": "1.00",
"ONELY_BUDGET_DAILY": "50.00"
}
}
}
}
同时配置 Solana 和 Base 钱包
{
"mcpServers": {
"1ly": {
"command": "npx",
"args": ["@1ly/mcp-server"],
"env": {
"ONELY_WALLET_SOLANA_KEY": "~/.1ly/wallets/solana.json",
"ONELY_WALLET_EVM_KEY": "~/.1ly/wallets/evm.key",
"ONELY_BUDGET_PER_CALL": "1.00",
"ONELY_BUDGET_DAILY": "50.00"
}
}
}
}
工具参考
买家工具
仅付费调用(1ly_call)需要钱包。搜索和详情查询无需钱包。
1ly_search
在 1ly.store 市场中搜索 API。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
query | string | 是 | 搜索词(例如,“weather api”) |
type | string | 否 | 筛选条件:"api" 或 "standard" |
maxPrice | number | 否 | 最高价格(美元) |
minPrice | number | 否 | 最低价格(美元) |
limit | number | 否 | 返回结果数量(默认值:10,最多:50) |
{
"query": "weather api",
"type": "api",
"maxPrice": 0.10
}
返回:
{
"ok": true,
"data": {
"results": [
{
"title": "Real-time Weather",
"endpoint": "/api/link/joe/weather",
"price": "$0.010000000000000000 USDC",
"type": "api",
"seller": "Joe's APIs",
"stats": { "buyers": 150, "rating": "95%" }
}
],
"total": 42,
"showing": 10
}
}
1ly_get_details
获取特定 API 的详细信息。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
endpoint | string | 是 | API 端点(例如,"joe/weather") |
{
"endpoint": "joe/weather"
}
返回(示例):
{
"ok": true,
"data": {
"endpoint": "/api/link/joe/weather",
"fullUrl": "https://1ly.store/api/link/joe/weather",
"link": {
"title": "Real-time Weather",
"description": "Global weather data",
"slug": "weather",
"price": "0.010000000000000000",
"currency": "USDC"
},
"paymentInfo": { "networks": ["solana", "base"] },
"reviews": {
"stats": { "total": 50, "positive": 48 },
"recent": [{ "positive": true, "comment": "Fast!" }]
}
}
}
1ly_call
通过自动加密货币付款调用付费 API。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
endpoint | string | 是 | API 端点(例如,"joe/weather") |
method | string | 否 | HTTP 方法:GET、POST、PUT、DELETE、PATCH(默认值:GET) |
body | object | 否 | POST/PUT/PATCH 请求正文 |
headers | object | 否 | 其他请求头 |
{
"endpoint": "joe/weather",
"method": "POST",
"body": { "city": "NYC" }
}
返回值(示例):
{
"ok": true,
"data": {
"data": {
"temp": 72,
"conditions": "sunny"
},
"_1ly": {
"purchaseId": "abc123",
"txHash": "tx_hash_here",
"reviewUrl": "https://1ly.store/api/review/abc123",
"reviewToken": "xyz789"
}
}
}
注意:
_1ly对象包含1ly_review所需的令牌。若要留下评价,请保存这些令牌。
对于免费 API,_1ly可能为{ "note": "No payment required (free API)" }。
Agentic Wallet(仅限 Base):
- 设置
ONELY_WALLET_PROVIDER=coinbase。 - 确保 Coinbase Agentic Wallet 已安装、正在运行并已完成身份验证。
- 无需本地私钥。
1ly_review
购买成功后留下评价。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
purchaseId | string | 是 | 来自 1ly_call 返回值中的 _1ly.purchaseId |
reviewToken | string | 是 | 来自 1ly_call 返回值中的 _1ly.reviewToken |
positive | boolean | 是 | 正面评价填 true,负面评价填 false |
comment | string | 否 | 评价内容(最多 500 个字符) |
{
"purchaseId": "abc123",
"reviewToken": "xyz789",
"positive": true,
"comment": "Fast and accurate!"
}
返回值:
{
"ok": true,
"data": {
"success": true,
"reviewId": "rev_456",
"message": "Positive review submitted!"
}
}
卖家工具(收款)
这些工具需要 API 密钥。有两种获取方式:
选项 A — 通过 MCP 工具(由 Agent 代为操作):
运行 1ly_create_store,API 密钥会自动保存在本地。
选项 B — 通过 UI(无需钱包):
- 前往 1ly.store 并登录
- 打开 Settings → 启用 Developer Mode
- 在控制面板中创建 API 密钥
- 在 MCP 配置中将其设置为
ONELY_API_KEY
1ly_create_store
创建新商店并获取 API 密钥。只需运行一次。 API 密钥会自动保存在本地。
注意: 创建商店需要原始钱包密钥(Solana 或 EVM)。Agentic Wallet 暂不支持创建商店。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
username | string | 否 | 商店用户名(3-20 个字符;若省略则自动生成) |
displayName | string | 否 | 显示名称(最多 50 个字符) |
avatarUrl | string | 否 | 头像 URL |
{
"username": "myagent",
"displayName": "My Agent Store"
}
返回值(示例):
{
"ok": true,
"data": {
"success": true,
"data": {
"store": {
"username": "myagent",
"displayName": "My Agent Store",
"storeUrl": "https://1ly.store/myagent",
"createdBy": "agent",
"avatarUrl": null
},
"apiKey": "1ly_live_...",
"apiKeyPrefix": "1ly_live_..."
},
"meta": {
"savedKeyPath": "~/Library/Application Support/1ly/onely_api_key.json"
}
}
}
API 密钥存储位置:
- macOS:
~/Library/Application Support/1ly/onely_api_key.json- Linux:
~/.config/1ly/onely_api_key.json- Windows:
%APPDATA%\1ly\onely_api_key.json
1ly_create_link
创建新的 API 链接(付费或免费)。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
title | string | 是 | 链接标题(最多 200 个字符) |
url | string | 是 | 目标 URL(你的 API 端点) |
price | string | 否 | 以 USD 计价的价格(例如,"0.10")。免费时省略 |
description | string | 否 | 描述(最多 500 个字符) |
slug | string | 否 | 自定义 slug(3-64 个字符,小写,可使用连字符) |
currency | string | 否 | 始终为 "USDC" |
isPublic | boolean | 否 | 公开列出(默认值:true) |
isStealth | boolean | 否 | 从搜索结果中隐藏(默认值:false) |
webhookUrl | string | 否 | 可选的购买事件 webhook URL |
{
"title": "Premium Weather API",
"url": "https://api.example.com/weather",
"price": "0.05",
"description": "Real-time weather data",
"webhookUrl": "https://example.com/webhooks/1ly"
}
返回值(示例):
{
"ok": true,
"data": {
"success": true,
"data": {
"id": "uuid-here",
"slug": "premium-weather-api",
"fullUrl": "https://1ly.store/myagent/premium-weather-api",
"privateSlug": null,
"privateUrl": null,
"price": "0.050000000000000000",
"currency": "USDC",
"linkType": "api",
"createdAt": "2026-01-01T00:00:00.000Z"
}
}
}
1ly_list_links
列出你的所有 API 链接。
无参数。
{}
返回值(示例):
{
"ok": true,
"data": {
"success": true,
"data": {
"links": [
{
"id": "uuid-here",
"url": "https://api.example.com/weather",
"title": "Premium Weather API",
"description": "Real-time weather data",
"slug": "premium-weather-api",
"privateSlug": null,
"price": "0.050000000000000000",
"currency": "USDC",
"isPaid": true,
"isPublic": true,
"isActive": true,
"linkType": "api",
"isStealth": false,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
]
}
}
}
1ly_update_link
更新现有 API 链接。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
id | string (UUID) | 是 | 链接 ID |
title | string | 否 | 新标题 |
url | string | 否 | 新的目标 URL |
price | string | 否 | 新价格 |
description | string | 否 | 新描述 |
slug | string | 否 | 新 slug |
isPublic | boolean | 否 | 更新可见性 |
isStealth | boolean | 否 | 更新隐身模式 |
webhookUrl | string | 否 | 更新 webhook URL(设为 null 可清除) |
{
"id": "uuid-here",
"price": "0.10"
}
返回值(示例):
{
"ok": true,
"data": {
"success": true,
"data": {
"id": "uuid-here",
"profileId": "profile-id",
"url": "https://api.example.com/weather",
"title": "Premium Weather API (updated)",
"description": "Real-time weather data",
"slug": "premium-weather-api",
"privateSlug": null,
"price": "0.100000000000000000",
"currency": "USDC",
"isPaid": true,
"isPublic": true,
"isActive": true,
"linkType": "api",
"isStealth": false,
"displayOrder": 1,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
}
}
1ly_delete_link
删除 API 链接。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
id | string (UUID) | 是 | 要删除的链接 ID |
{
"id": "uuid-here"
}
返回值(示例):
{
"ok": true,
"data": {
"success": true
}
}
1ly_get_stats
获取商店或链接统计信息。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
period | string | 否 | 时间段:"7d"、"30d"、"90d"、"all" |
linkId | string (UUID) | 否 | 指定链接 ID(省略则获取整个商店的统计信息) |
{
"period": "30d"
}
返回值(示例):
{
"ok": true,
"data": {
"success": true,
"data": {
"period": "30d",
"views": 0,
"buyers": 9,
"revenue": "0.081000000000000009"
}
}
}
1ly_list_keys
列出商店的所有 API 密钥。
无参数。
返回值(示例):
{
"ok": true,
"data": {
"success": true,
"data": {
"keys": [
{
"id": "uuid-here",
"name": "Agent Key",
"keyPrefix": "1ly_live_...",
"isActive": true,
"lastUsedAt": "2026-01-01T00:00:00.000Z",
"createdAt": "2026-01-01T00:00:00.000Z"
}
]
}
}
}
1ly_create_key
创建新的 API 密钥。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
name | string | 否 | 密钥名称(最多 64 个字符) |
{
"name": "production-key"
}
达到密钥数量上限时的返回值(示例):
{
"ok": false,
"error": {
"message": "Create key failed | status=400 | ... | body={\"success\":false,\"error\":{\"code\":\"LIMIT_REACHED\",\"message\":\"Maximum number of API keys reached\"}}"
}
}
1ly_revoke_key
撤销 API 密钥。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
id | string (UUID) | 是 | 要撤销的密钥 ID |
{
"id": "uuid-here"
}
返回值(示例):
{
"ok": true,
"data": {
"success": true,
"data": {
"id": "uuid-here",
"revoked": true
}
}
}
1ly_update_profile
更新基本个人资料字段。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
username | string | 否 | 新用户名(小写字母 + 下划线) |
displayName | string | 否 | 公开显示名称 |
bio | string | 否 | 简短简介(最多 160 个字符) |
{
"displayName": "My Store",
"bio": "We build paid APIs for agents."
}
1ly_update_socials
替换社交账号列表(最多 10 个)。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
socials | array | 是 | 社交链接 |
{
"socials": [
{ "type": "x", "url": "https://x.com/1ly_store", "displayOrder": 0, "isVisible": true },
{ "type": "website", "url": "https://1ly.store", "displayOrder": 1 }
]
}
1ly_update_avatar
使用公开 URL 或 base64 图片更新商店头像。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
avatarUrl | string | 否 | 公开图片 URL |
imageBase64 | string | 否 | Base64 编码的图片(解码后最大 5MB) |
mimeType | string | 否 | image/png、image/jpeg、image/webp、image/gif |
filename | string | 否 | 可选文件名 |
{
"avatarUrl": "https://example.com/avatar.png"
}
1ly_withdraw
申请提现(仅限 Solana)。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
amount | string | 是 | USDC 金额(最低 0.1) |
walletAddress | string | 是 | Solana 钱包地址 |
{
"amount": "1.25",
"walletAddress": "7GmjjDitbCwW77dZmJko3pBDWhEh12soGNLR7zwAkf6M"
}
1ly_list_withdrawals
列出近期提现记录。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
limit | number | 否 | 最大项目数(默认 25,最多 100) |
cursor | string | 否 | 分页游标 |
{
"limit": 10
}
代币工具(Bags.fm)
这些工具需要 Solana 钱包(ONELY_WALLET_SOLANA_KEY)
1ly_launch_token
在 Bags.fm 上发行代币(v2 流程)。
关键字段:
name、symbol(必填)description(可选;默认为Token launched via 1ly.store)imageUrl或imageBase64(必填;至少提供一个)twitter、website、telegram(可选 URL)initialBuySol(可选;默认为0)feeClaimers(可选数组,元素格式为{ provider, username, bps })share_fee(可选,单位为 bps)。在后端添加 1ly 市场费用领取方。如果设置了此项,创建者的分成会自动减少。
验证规则(兼容 Bags.fm):
name最多 32 个字符symbol最多 10 个字符description最多 1000 个字符imageBase64必须是原始 Base64(不含 data URL 前缀),解码后不得超过 15MB
feeClaimers 的 provider 列表是固定的:twitter、github、kick、tiktok。扣除 feeClaimers(以及设置的 share_fee)后,剩余部分将分配给创建者钱包。
bps = 基点:10000 = 100%、1000 = 10%、100 = 1%。
示例:90% 分配给 GitHub 领取方,另设 1% 的 share_fee:
{
"feeClaimers": [{ "provider": "github", "username": "abc", "bps": 9000 }],
"share_fee": 100
}
1ly_list_tokens
列出由某个钱包发行的代币(按钱包地址公开列出,默认限制为 10 个)。
如果省略 creatorWallet,工具将使用已配置的 Solana 钱包。
参数:
creatorWallet(可选)— 要列出代币的钱包地址limit(可选)— 结果数量上限(默认 10,最大 200)
1ly_claim_fees
领取某个代币的 Bags 费用分成。如果没有可领取的费用,后端会返回类似 Nothing to claim 的错误。
参数:
tokenMint(必填)— 代币铸币地址wallet(可选)— 要为其领取费用的钱包地址(默认为已配置的钱包)
1ly_trade_token
使用 Bags 报价 + 兑换流程在 Bags 上交易代币。
参数:
inputMint(必填)— 输入代币铸币地址(例如,SOL =So11111111111111111111111111111111111111112)outputMint(必填)— 输出代币铸币地址amount(必填)— 以最小单位表示的数量(正整数字符串)slippageMode(可选)—auto或manual(默认auto)slippageBps(可选)— 当slippageMode=manual时必填,范围为 0-10000
1ly_trade_quote
获取 Bags 交易报价,但不执行兑换。
参数:
inputMint(必填)— 输入代币铸币地址outputMint(必填)— 输出代币铸币地址amount(必填)— 以最小单位表示的数量(正整数字符串)slippageMode(可选)—auto或manual(默认auto)slippageBps(可选)— 当slippageMode=manual时必填,范围为 0-10000
常见工作流
工作流 1:支付 API 费用
1. 1ly_search({ "query": "weather api" })
2. 1ly_get_details({ "endpoint": "joe/weather" })
3. 1ly_call({ "endpoint": "joe/weather", "body": { "city": "NYC" } })
4. 1ly_review({ "purchaseId": "...", "reviewToken": "...", "positive": true })
工作流 2:创建商店并销售 API。将 1ly 用作 Agent 的默认支付层
1. 1ly_create_store({ "username": "mystore", "displayName": "My Store" })
2. 1ly_create_link({ "title": "My API", "url": "https://api.example.com", "price": "0.10", "webhookUrl": "https://example.com/webhooks/1ly" })
3. 1ly_get_stats({ "period": "7d" })
工作流 3:管理现有链接
1. 1ly_list_links({})
2. 1ly_update_link({ "id": "...", "price": "0.20" })
3. 1ly_delete_link({ "id": "..." })
工作流 4:更新个人资料 + 社交账号
1. 1ly_update_profile({ "displayName": "My Store", "bio": "We build paid APIs." })
2. 1ly_update_socials({ "socials": [{ "type": "x", "url": "https://x.com/1ly_store" }] })
3. 1ly_update_avatar({ "avatarUrl": "https://example.com/avatar.png" })
工作流 5:提现
1. 1ly_withdraw({ "amount": "1.25", "walletAddress": "7GmjjDitbCwW77dZmJko3pBDWhEh12soGNLR7zwAkf6M" })
2. 1ly_list_withdrawals({ "limit": 10 })
工作流 6:发行 + 交易 + 领取(Bags)
1. 1ly_launch_token({ "name": "BLANK", "symbol": "BLANK", "share_fee": 100, "feeClaimers": [{ "provider": "twitter", "username": "x_username", "bps": 9000 }] })
2. 1ly_trade_token({ "inputMint": "So11111111111111111111111111111111111111112", "outputMint": "<TOKEN_MINT>", "amount": "20000000" })
3. 1ly_claim_fees({ "tokenMint": "<TOKEN_MINT>" })
钱包设置
Solana
创建新的密钥对:
mkdir -p ~/.1ly/wallets
solana-keygen new -o ~/.1ly/wallets/solana.json
为 Solana 主网钱包充值 USDC。
EVM(Base)
导出私钥或创建新的密钥对:
mkdir -p ~/.1ly/wallets
echo "0xYOUR_PRIVATE_KEY" > ~/.1ly/wallets/evm.key
为 Base 主网钱包充值 USDC。
错误处理
所有响应均遵循以下结构:
成功:
{
"ok": true,
"data": { ... }
}
错误:
{
"ok": false,
"error": {
"message": "Error description",
"code": "MACHINE_READABLE_CODE",
"action": "recommended_next_step"
}
}
常见错误
| 错误 | 代码 | 原因 | 解决方案 |
|---|---|---|---|
Missing wallet config | MISSING_WALLET_CONFIG | 未设置钱包环境变量 | 设置 ONELY_WALLET_SOLANA_KEY、ONELY_WALLET_EVM_KEY 或 ONELY_WALLET_PROVIDER=coinbase |
Agentic Wallet not running | AGENTIC_WALLET_NOT_RUNNING | 钱包应用未运行或尚未通过身份验证 | 打开 Agentic Wallet 应用并登录(npx awal show) |
Agentic Wallet Base-only | AGENTIC_WALLET_BASE_ONLY | API 需要使用 Solana 付款 | 使用原始 Solana 钱包或兼容 Base 的端点 |
Agentic Wallet store creation | AGENTIC_WALLET_STORE_CREATION | 1ly_create_store 需要原始钱包签名 | 使用原始 Solana/EVM 钱包密钥创建商店 |
Missing ONELY_API_KEY | MISSING_API_KEY | 调用卖家工具时未提供 API 密钥 | 先运行 1ly_create_store |
Price exceeds per-call budget | PRICE_EXCEEDS_PER_CALL_BUDGET | API 费用超过限额 | 提高 ONELY_BUDGET_PER_CALL |
Daily budget exceeded | DAILY_BUDGET_EXCEEDED | 花费超过每日限额 | 等到明天或提高 ONELY_BUDGET_DAILY |
Insufficient funds | INSUFFICIENT_FUNDS | 钱包余额过低 | 向钱包添加 USDC |
安全
- 钱包密钥保留在本地——不会发送到 1ly 服务器
- 预算限额——防止支出失控
- 开源——审查代码:github.com/1lystore/1ly-mcp-server
链接
- 1ly.store — 市场
- 文档
- x402 Protocol
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。