Skip to content

Create Signal Submission API with Validation #8

@Mathews-25

Description

@Mathews-25

Context:
Signal providers submit trade signals with stake verification. The system must validate signal quality, verify on-chain stake, and prevent spam.

Problem:
Build a robust signal submission endpoint that validates data, checks provider stake, and applies quality filters.

What Done Looks Like:

  • POST /signals endpoint
  • Input validation (prices, rationale length, etc.)
  • Stake verification via Soroban smart contract
  • Rate limiting per provider
  • Signal quality scoring

Folder Structure:

src/
├── signals/
│   ├── signals.controller.ts
│   ├── signals.service.ts
│   ├── validators/
│   │   ├── signal-validator.service.ts
│   │   └── stake-validator.service.ts
│   └── dto/
│       └── create-signal.dto.ts

Implementation Guidelines:

  • Validate price logic (target > entry for BUY signals)
  • Require minimum rationale length (50 characters)
  • Check provider has minimum stake (query Soroban contract)
  • Rate limit: 10 signals per provider per day
  • Auto-set expiration (24 hours default)
  • Generate confidence score based on provider history

Required Fields:

{
  assetPair: string; // e.g., "USDC/XLM"
  action: "BUY" | "SELL";
  entryPrice: number;
  targetPrice: number;
  stopLoss: number;
  rationale: string;
  expiresIn?: number; // hours
}

Edge Cases:

  • Provider with insufficient stake
  • Invalid asset pair
  • Price validation failures
  • Duplicate signals within 1 hour

Validation:

  • Valid signal created successfully
  • Invalid prices rejected
  • Stake verification calls Soroban
  • Rate limit enforced

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions