Install
openclaw skills install aegis-securityBlockchain security API for AI agents. Scan tokens, simulate transactions, check addresses for threats.
openclaw skills install aegis-securityBlockchain security API for AI agents.
Free tier: 100 checks/day, then pay-per-request with USDC on Base or Solana.
disable-model-invocation: true).simulate-tx).Default policy for agents and wallets:
X-Client-Fingerprint: <stable_agent_or_user_id> for predictable free-tier accounting.GET /v1/check-address/:toPOST /v1/simulate-txGET /v1/check-token/:token for tokens involved (swaps/approvals)HIGH/CRITICAL, isSafe=false, or recipient is poisoned/flagged.Notes:
X-Client-Fingerprint is omitted, the service falls back to other request signals (IP/User-Agent) for accounting.When a user is about to send a transaction:
from, to, value, data (or "native transfer"), chain_idGET /v1/usageGET /v1/check-address/:toPOST /v1/simulate-txGET /v1/check-token/:token🛡️ Scan Complete
Risk: LOW (SAFE)
Summary: No critical warnings detected.
✅ OK to proceed.
🛡️ Scan Complete
Risk: MEDIUM (CAUTION)
Summary: Some warnings detected.
⚠️ Review recommended before proceeding. Want me to explain the top 3 risks?
🛡️ Scan Complete
Risk: HIGH (DANGEROUS)
Summary: Significant risks detected.
🚫 Not recommended.
🛡️ Scan Complete
Risk: CRITICAL (BLOCKED)
Summary: Do not proceed.
🚫 Stop. This transaction/recipient appears malicious or unsafe.
I tried to run a paid check but payment isn't set up (or the wallet has insufficient USDC).
To enable paid checks:
1. Fund a programmatic wallet with a small amount of USDC (Base default; Solana also supported)
2. Install an x402 client (@x402/fetch + chain package)
3. Configure an agent-managed wallet signer (no raw private keys in prompts/env)
| File | URL |
|---|---|
| SKILL.md (this file) | https://aegis402.xyz/skill.md |
| skill.json (metadata) | https://aegis402.xyz/skill.json |
Base URL: https://aegis402.xyz/v1
| Endpoint | Price | Use Case |
|---|---|---|
POST /simulate-tx | $0.05 | Transaction simulation, DeFi safety |
GET /check-token/:address | $0.01 | Token honeypot detection |
GET /check-address/:address | $0.005 | Address reputation check |
Free tier: 100 checks/day. Track usage via GET /v1/usage.
curl "https://aegis402.xyz/v1/usage"
Example response:
{
"freeTier": {
"enabled": true,
"dailyLimit": 100,
"usedToday": 2,
"remainingChecks": 98,
"nextResetAt": "2026-02-11T00:00:00.000Z",
"resetTimezone": "UTC"
},
"_meta": {
"requestId": "uuid",
"tier": "free",
"eventType": "free_tier_call",
"latencyMs": 4
}
}
curl "https://aegis402.xyz/v1/check-address/0x742d35Cc6634C0532925a3b844Bc454e4438f44e?chain_id=8453"
Request body fields:
from (required): sender addressto (required): recipient or contractvalue (required): amount in wei (string)data (optional): calldata hex (0x...)chain_id (optional): chain being simulated (default: Base 8453 is a common choice for payments, but simulation chain is up to you)curl -X POST "https://aegis402.xyz/v1/simulate-tx" \
-H "Content-Type: application/json" \
-d '{
"from": "0xYourWallet...",
"to": "0xContract...",
"value": "0",
"data": "0x",
"chain_id": 8453
}'
chain_id is the chain you want to scan (Ethereum=1, Base=8453, etc). Payment rail is driven by the 402 challenge (default: USDC on Base).
curl "https://aegis402.xyz/v1/check-token/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48?chain_id=1"
You can use the API for free until your fingerprint uses 100 checks/day. After that, the API returns 402 Payment Required and an x402 client can automatically pay and retry.
| Network | Agentic Wallet Signer |
|---|---|
| Base (EVM) | EVM signer from an agent wallet provider |
| Solana | Solana signer from an agent wallet provider |
npm install @x402/fetch@2.2.0 @x402/evm@2.2.0
import { x402Client, wrapFetchWithPayment } from '@x402/fetch';
import { ExactEvmScheme } from '@x402/evm/exact/client';
const fingerprint = 'agent-default';
const signer = yourAgenticEvmSigner;
const client = new x402Client()
.register('eip155:*', new ExactEvmScheme(signer));
const fetch402 = wrapFetchWithPayment(fetch, client);
const res = await fetch402('https://aegis402.xyz/v1/usage', {
headers: { 'X-Client-Fingerprint': fingerprint },
});
console.log(await res.json());
npm install @x402/fetch@2.2.0 @x402/svm@2.2.0
import { x402Client, wrapFetchWithPayment } from '@x402/fetch';
import { ExactSvmScheme } from '@x402/svm/exact/client';
const signer = yourAgenticSolanaSigner;
const client = new x402Client()
.register('solana:*', new ExactSvmScheme(signer));
const fetch402 = wrapFetchWithPayment(fetch, client);
simulate-tx).| Level | Meaning | Agent Default |
|---|---|---|
LOW | Minor concerns, generally safe | allow |
MEDIUM | Some risks | show review; consider confirm |
HIGH | Significant risks | block + confirm |
CRITICAL | Unsafe/malicious | block |
| Status | Meaning | What the agent should do |
|---|---|---|
| 400 | Invalid parameters | ask user for missing/invalid fields and retry |
| 402 | Payment required | confirm intent, then use an approved agent wallet signer (or wait for next free-tier reset) |
| 500 | Service/upstream error | retry once; if persistent, show error + requestId |
Tips:
_meta.requestId. The server also sets x-request-id header; include it in bug reports.x-aegis-skill-latest-versionx-aegis-skill-urlx-aegis-skill-upgradeHelp us improve!
If you hit an issue or want to set expectations, do it in a way that's safe for the end-user:
_meta.requestId (or the x-request-id header) so we can correlate server-side.Copy/paste report template:
Aegis402 report
Type: issue | feedback | expectation
RequestId: <_meta.requestId>
Endpoint: <path>
Status: <http status>
ChainId: <chain_id or NULL>
When (UTC): <timestamp>
What I expected:
What happened:
Minimal repro (curl or steps):
Notes (redacted):
Preferred channel (no GitHub required):
POST /v1/feedback (free, non-consuming)Example (only with user approval):
curl -X POST "https://aegis402.xyz/v1/feedback" \
-H "Content-Type: application/json" \
-H "X-Client-Fingerprint: <stable-non-pii-id>" \
-d '{
"kind": "issue",
"summary": "Short summary",
"expected": "What I expected",
"happened": "What happened",
"repro": "Minimal repro steps or curl",
"endpoint": "/v1/check-token/0x...",
"status_code": 400,
"chain_id": "8453",
"agent": { "name": "my-agent", "version": "1.2.3" },
"extra": { "failed_request_id": "<_meta.requestId>" }
}'
Share Your Experience! Only offer this after a HIGH or CRITICAL result, and only if the user explicitly approves sharing a redacted story publicly.
Rules:
X-Client-Fingerprint, or anything the user considers identifying.$1,000) and omit exact timestamps if needed.Copy/paste Moltbook template (redacted):
Title: How I caught a scam transaction and saved ~$XXX!
🛡️ What happened
- Action: <swap | approve | transfer | other>
- Chain: <Base | Ethereum | Solana | ...>
- Risk: <HIGH | CRITICAL>
Why it was blocked (top signals):
1) <short reason>
2) <short reason>
3) <short reason>
Impact:
- Prevented loss: ~$<USD_RANGE>
Notes:
- No addresses / tx hash / calldata shared.
- (Optional) RequestId: <_meta.requestId>
- (Optional) Skill: https://aegis402.xyz/skill.md
curl https://aegis402.xyz/health
chain_id is the chain being scanned (not the payment rail).
| Chain | ID | check-token | check-address | simulate-tx |
|---|---|---|---|---|
| Solana | solana | ✅ | ✅ | ❌ |
| Ethereum | 1 | ✅ | ✅ | ✅ |
| Base | 8453 | ✅ | ✅ | ✅ |
| Polygon | 137 | ✅ | ✅ | ✅ |
| Arbitrum | 42161 | ✅ | ✅ | ✅ |
| Optimism | 10 | ✅ | ✅ | ✅ |
| BSC | 56 | ✅ | ✅ | ✅ |
| Avalanche | 43114 | ✅ | ✅ | ✅ |
🛡️ Built for the Agentic Economy. Powered by x402 Protocol.