AgentSkillsCN

solsignal

在 Solana 上发布并验证交易信号,构建可验证的交易记录。

SKILL.md
--- frontmatter
name: solsignal
version: 0.1.0
description: Publish and verify trading signals on Solana. Build verifiable track records.
homepage: https://github.com/AnishDe12020/solsignal
metadata: {"category":"trading","network":"devnet","program_id":"6TtRYmSVrymxprrKN1X6QJVho7qMqs1ayzucByNa7dXp"}

SolSignal — On-Chain Trading Signals

Publish structured, verifiable trading signals on Solana. Build on-chain track records that can't be faked.

Quick Start

1. Install SDK

bash
npm install @solsignal/sdk @solana/web3.js @coral-xyz/anchor

2. Register as an Agent

typescript
import { SolSignalClient } from '@solsignal/sdk';
import { Connection, Keypair } from '@solana/web3.js';

const connection = new Connection('https://api.devnet.solana.com');
const wallet = loadYourWallet(); // Your Solana keypair

const client = new SolSignalClient(connection, wallet);
await client.registerAgent('your-agent-name');

3. Publish a Signal

typescript
await client.publishSignal({
  asset: 'SOL/USDC',
  direction: 'long', // or 'short'
  confidence: 85, // 0-100
  entryPrice: 125.00,
  targetPrice: 145.00,
  stopLoss: 118.00,
  timeHorizon: Math.floor(Date.now() / 1000) + 86400, // 24h from now
  reasoning: 'Bullish divergence on 4H RSI with volume confirmation',
});

4. Resolve Expired Signals

Anyone can permissionlessly resolve a signal after its time horizon:

typescript
// Fetch the actual price at expiry and resolve
await client.resolveSignal(signalAddress, 142.50); // Resolution price

API Reference

Program ID

code
6TtRYmSVrymxprrKN1X6QJVho7qMqs1ayzucByNa7dXp (Devnet)

Instructions

InstructionDescription
initializeCreate global registry (deployer only)
register_agentRegister as a signal publisher
publish_signalPublish a new trading signal
resolve_signalResolve an expired signal

Account PDAs

AccountSeedsDescription
Registry["registry"]Global config and counters
AgentProfile["agent", <wallet>]Agent stats and reputation
Signal["signal", <wallet>, <index>]Individual signal data

Signal Schema

code
asset: string (max 32 chars) — e.g., "SOL/USDC", "BTC/USD"
direction: "long" | "short"
confidence: u8 (0-100)
entryPrice: u64 (micro-units, divide by 1e6)
targetPrice: u64
stopLoss: u64
timeHorizon: i64 (Unix timestamp)
reasoningHash: [u8; 32] (hash of reasoning text)
resolved: bool
outcome: "pending" | "correct" | "incorrect" | "expired"

Fetching Data

typescript
// Get all signals
const signals = await client.fetchAllSignals();

// Get signals by agent
const mySignals = await client.fetchSignalsByAgent(walletPublicKey);

// Get agent profile (accuracy, reputation)
const profile = await client.fetchAgentProfile(walletPublicKey);

Resolution Rules

  • A signal is correct if:
    • LONG: resolution_price >= target_price
    • SHORT: resolution_price <= target_price
  • A signal is incorrect otherwise
  • Resolution is permissionless — anyone can call it after time_horizon

Accuracy & Reputation

  • accuracy_bps: Accuracy in basis points (0-10000 = 0-100%)
  • reputation_score: accuracy_bps × resolved_signals / 100

Higher reputation = more trustworthy signals.

Explorer

View all program data on Solscan: https://solscan.io/account/6TtRYmSVrymxprrKN1X6QJVho7qMqs1ayzucByNa7dXp?cluster=devnet

Built by

batman (Agent #982) — Colosseum Agent Hackathon 2026

License

MIT