内容
<div align="center">
# 太阳卫士
### Solana AI 智能体交易的保护和协议风险引擎
[](packages/core/src/risk-scorer.ts)
[](https://www.typescriptlang.org/)
[](packages/mcp-server)
[](LICENSE)
[实时仪表盘](https://solsentry.io/dashboard) · [API 和 SDK 游乐场](https://solsentry.io/docs) · [OpenAPI 规范](https://solsentry.io/api/v1/openapi.json) · [数据完整性审计](docs/DATA_INTEGRITY_AUDIT.md)
</div>
---
## 概述
**永远不要签署 drainer 交易。** 太阳卫士(SolSentry)在 Solana 主网上运行您的智能体的交易,而无需广播它。它报告哪些代币离开钱包,标记已知的钱包 drainer 指令模式,并且当您命名协议时,将协议风险和策略防护措施纳入其中。一次请求返回一个单独的判决。
```ts
const verdict = await sentry.guard({ transaction, protocolSlug: 'kamino' });
if (!verdict.proceed) return; // do not sign
```
围绕它的是一个开源、具有溯源标记的协议风险引擎和策略防护措施中间件,适用于 Solana AI 交易智能体和自主机器人。每个风险因素都命名其数据源。引擎无法衡量的任何因素都报告为未衡量,而不是用一个合理的常数填充。
### 各个部分如何组合
智能体通过四种接口之一到达 SolSentry:
1. **MCP**,带有九个 `solsentry_*` 工具,适用于 Claude、Cursor 和任何 MCP 客户端。
2. **TypeScript SDK** (`@solsentry/sdk`),适用于自定义机器人。
3. **CLI** (`@solsentry/cli`),适用于终端。
4. **REST**,适用于其他所有情况。
引擎在回答之前根据实时数据评估每个请求:
| 源 | 提供内容 |
| :--- | :--- |
| Solana 主网 RPC | 交易模拟,余额变化,链上钱包读取 |
| Pyth Hermes | 按协议的预言机健康状况和稳定币脱钩,以基点为单位 |
| DeFiLlama | TVL,费用系列,类别份额,已实现黑客历史 |
| Jupiter Token API | 有机活动评分和代币市场完整性 |
| Helius | 顶级持有者集中度 |
| GitHub | 过去 30 天的开发者活动 |
---
## 关键能力
- **`guard_transaction`,签署前的唯一调用。** 给它一个序列化的交易。它模拟字节对抗主网,扫描 drainer 模式,并(使用可选的 `protocolSlug`、`action` 和 `amountUsd`)将利用门和策略防护措施纳入单一的 `SIGN` 或 `DO_NOT_SIGN` 判决,并附带原因。可通过 MCP 和 `POST /api/v1/guard` 使用。
- **钱包 drainer 检测。** 反序列化一个 base58 或 base64 交易,用 `sigVerify: false` 模拟它,并扫描指令序列中的 drainer 模式:一个 `Approve` 或 `SetAuthority` 后面跟着一个立即的 `Transfer` 或 `CloseAccount`,或一个账户余额的超过 90% 的扫描。只读,不需要密钥材料,不广播。
- **溯源标记评分。** 八个风险因素,每个因素都有其数据源、时间戳和置信度。一个没有数据源的因素报告为未衡量,不计分数,其权重重新分配给有数据的因素。每个响应都包含一个 `factor_coverage` 对象,如果覆盖率低于 50%,引擎不会提供方向性建议。
- **已实现利用门。** 每个协议都针对 DeFiLlama 的黑客数据集进行检查。最近的大额损失可以单独强制执行 `block` 判决,而不管其他因素看起来有多健康。参见 [利用历史可以覆盖分数](#利用历史可以覆盖分数)。
- **交易模拟器。** 替换最近的 blockhash,跟踪计算单位,并计算精确的传入和传出 SOL 和 SPL 代币余额变化。
- **压力测试。** 对抗真实的链上头寸应用不利的价格冲击,并报告哪些清算,风险资本和恢复安全健康因素所需的抵押品。
- **按调用付费(以 USDC 计)。** 通过 `X-402-Payment` 头部的 Solana Pay 微支付。计费在设置 `X402_RECIPIENT_WALLET` 之前关闭,因此每个端点在配置钱包之前都是免费的。
---
## 因素覆盖率:实际衡量了什么
八个因素。未衡量的因素返回 `score: null`、`source: "unmeasured"`,不贡献任何内容;其权重重新分配给其余因素。不适用于某个协议的因素(例如,DEX 上的借贷清算)被标记为不适用,并从该协议的覆盖率分母中排除,而不是计为缺口。
| 因素 | 权重 | 源 | 状态 |
| :--- | :--- | :--- | :--- |
| 利用历史 | 25% | DeFiLlama 黑客数据集 | 已衡量。实际损失,随时间衰减。可以单独强制执行 `block` 判决。 |
| 审计和治理 | 15% | 协议注册表和已发布的治理文档 | 已衡量。 |
| 流动性和清算 | 15% | Kamino 市场利用率 | 已衡量借贷市场(借入流动性超过供应流动性)。不适用于没有借贷账簿的协议。 |
| 预言机健康和脱钩 | 15% | Pyth Hermes,按协议 | 已衡量。评估协议 solvency 依赖的最弱馈送,以及稳定币与一美元的偏差。 |
| 鲸鱼集中度 | 10% | Helius,以 Jupiter 为备用 | 已衡量。代币供应量的顶级持有者份额。 |
| 市场完整性 | 10% | Jupiter Token API | 已衡量。治理代币的市场:有机交易量与机器人和套利交易量,以及铸造和冻结授权状态。操纵和倾销风险的代理,而不是 swap 中的三明治风险。 |
| 开发者活动 | 5% | GitHub REST API | 已衡量。评估废弃,而不是提交量。设置 `GITHUB_TOKEN` 以提高速率限制。 |
| 商业效率 | 5% | DeFiLlama | 已衡量。TVL,费用系列和类别份额。 |
实时覆盖率通常为 80% 至 90% 的模型权重,每个协议的 `GITHUB_TOKEN` 设置不同。每个 API 响应和每个协议页面都说明其自身的覆盖率。覆盖率低于 50% 时,引擎返回 `HOLD`,不会提供方向性建议,而是推断出证据不足的建议。
### 利用历史可以覆盖分数
实际损失是唯一描述协议实际发生的情况的因素,而不是其外观。将它平均分配到七个看起来很健康的协同因素中会掩盖它,因此它直接控制判决:
- 180 天内损失 1000 万美元或以上强制执行 `block` 判决。
- 180 天内损失 100 万美元或以上限制判决为 `avoid`。
- 较旧的事件仍然降低分数,随时间衰减至大约 10% 的权重,持续三年。
实时示例。Drift 在审计、TVL 和持有者集中度方面表现良好,但因管理员密钥泄露损失了 2.95 亿美元。仅凭综合评分,它就位居中间。与利用门结合后,引擎返回 `block`。在此因素存在之前,没有协议曾收到过这样的判决。
### 永不模拟仓位
`positions/read`、`stress_test` 和 `get_position_health` 仅对钱包地址的真实链上数据进行操作(目前为 Kamino 债务仓位,Drift 待定)。如果没有钱包地址,它们返回一个空集合并说明。它们永远不会返回样本仓位。
---
## 快速入门
### TypeScript SDK (`@solsentry/sdk`)
```ts
import { SolSentryClient } from '@solsentry/sdk';
const sentry = new SolSentryClient({ baseUrl: 'https://solsentry.io' });
// 签署前的唯一调用。
const verdict = await sentry.guard({
transaction: serializedTx, // base58 或 base64
protocolSlug: 'kamino', // 可选:纳入协议风险和策略
action: 'borrow',
amountUsd: 500,
});
if (!verdict.proceed) {
console.warn('不要签署:', verdict.blockingReasons);
} else {
// 可以安全签署并广播
}
```
### CLI (`@solsentry/cli`)
```bash
npm install -g @solsentry/cli
# 评估协议
solsentry check kamino --details
# 模拟和扫描交易前签署
solsentry simulate 3s8xK9vW2zL... --encoding base58
# 根据策略防护措施评估交易
solsentry policy swap jupiter 5000
```
### 模型上下文协议(MCP)
SolSentry 通过 stdio 或 HTTP 在 `/api/v1/mcp` 上公开九个 `solsentry_*` 工具。将它添加到 `claude_desktop_config.json` 或 Cursor 配置中:
```json
{
"mcpServers": {
"solsentry": {
"command": "node",
"args": ["/path/to/solsentry/packages/mcp-server/dist/index.js"],
"env": {
"NEXT_PUBLIC_SUPABASE_URL": "https://your_project.supabase.co",
"SUPABASE_SERVICE_ROLE_KEY": "your_service_role_key",
"HELIUS_RPC_URL": "https://mainnet.helius-rpc.com/?api-key=your_key"
}
}
}
}
```
---
## 单体仓库布局
```
solsentry/
app/ Next.js 14 网页仪表盘,文档和 API 路由
api/v1/ REST 端点:guard,simulate,risk-check,mcp,stream
dashboard/ 概览,模拟器,仓位,策略,警报
packages/
core/ 风险评估器,模拟器,drainer 检测器,钱包读取器,数据获取器
sdk/ TypeScript 客户端(@solsentry/sdk)
cli/ 开发者 CLI(@solsentry/cli)
payment/ x402 USDC 微支付验证器(@solsentry/payment)
mcp-server/ 模型上下文协议服务器
lib/ 共享身份验证,安全,缓存和日志记录实用程序
sql/ PostgreSQL 模式和行级安全策略
```
---
## 测试
套件包括基于属性的模糊测试。
```bash
# 运行 Vitest 单元测试和模糊测试套件
npm test -- --run
# 编译工作区包
npx tsc -p packages/sdk/tsconfig.json
npx tsc -p packages/cli/tsconfig.json
npx tsc -p packages/payment/tsconfig.json
# 生产构建
npm run build
```
---
## 许可证
在 MIT 许可证下分发。有关详细信息,请参见 [`LICENSE`](LICENSE)。
版权(c)2026 SolSentry。