Signal Anatomy

A signal in Juno is a structured representation of on-chain behavior.

Signals are generated when wallet activity matches a known rule set deployer behavior, early liquidity, volume clustering, etc. These are not alerts. They are logged objects stored in memory and used across the UI and AI layer.


Format

Each signal is a flat object:

{
  type: "deployer-active",
  confidence: 0.83,
  timestamp: "2025-07-21T18:24:03Z",
  token: "5gk3...Xa7L"
}
  • type — describes the detected behavior

  • confidence — decimal between 0 and 1

  • timestamp — ISO-8601 UTC string

  • token — optional, if tied to a specific asset

Additional metadata may be attached depending on the signal class, but only these four are required.


Signal Generation

Signal creation is deterministic. No ML, no scoring models. Each rule is triggered by hard conditions.

Example:

if (
  tx.deployerActivity > 2 &&
  tx.timeSinceMint < 10 &&
  tx.token.isMintable
) {
  return generateSignal("deployer-active", 0.83)
}

Once created, signals are filtered and de-duped. Confidence below 0.5 is dropped by default unless a filter override is set.


Usage

Signals power:

  • The visual feed (WalletSignalFeed)

  • Prompt memory for the assistant

  • Token-level summary confidence

  • Dev debugging via DevPanel

They are not shown unless relevant. No spam. No repeats. Just behavior, stored cleanly.


Last updated