Skip to main content
L
LENITNES

methodology

How LENITNES turns commits into trades

Watch
Detect
Score
Gate
Trade
Prove

What we watch

9 typed detectors

Fast classification pass before the LLM. Each returns a score (0-100) + confidence. The agent sees detector output, commit evidence (SHAs, messages, diff stats), a sector-chain sequence(upstream→ downstream repos in the last 7d — e.g. halo2 → zebra → zcash), plus a cross-signal narrative of what every other monitored repo did in the same 24h window. News is corroboration only — it never trades on its own. These same detectors also power the enterprise leak-scan: pointed at any repo's history, they show what its commits signaled before anyone announced it.

emergency_patch

Urgency language (HOTFIX, urgent, critical) on a release branch.

security_critical

Security-sensitive paths (validation, consensus, crypto) + vulnerability class.

consensus_relevant

Diff touches consensus-critical paths — chainparams, block validation, signatures.

protocol_upgrade

Versioned protocol change — soft-fork, hard-fork, BIP/EIP number.

governance_shift

Maintainer set changing, governance docs rewritten, signer rotations.

supply_chain_risk

Dependency downgrades, unknown maintainers — supply-chain incident patterns.

dependency_rotation

Lockfile churn, deprecation notices, post-incident library swaps.

maintainer_departure

Contributor disappears >30d or removes from CODEOWNERS.

news_signal

News sentiment as corroboration for commit signals. Never trades alone — news-only conviction is hard-capped below the trade threshold.

Not binary — a commit can trip multiple detectors. The agent reads all scores + commit message + 7-day price context + past outcomes, then forms its own verdict.

Sector chains

Commits in related repos often form a causal chain — circuit fix in halo2, emergency fork in zebra, protocol release in zcash. The agent receives a compact sequence_context string listing upstream events in the same sector within the prior 7 days before scoring each batch.

Privacy L1 (Zcash stack)
zcash/halo2ZcashFoundation/zebrazcash/zcashzcash/librustzcash
Bitcoin L1
bitcoin-core/secp256k1bitcoin/bitcoin
Ethereum L1
ethereum/solidityethereum/go-ethereumparadigmxyz/reth
Solana L1
solana-labs/solanaanza-xyz/agave
Alt L1
MystenLabs/sui

Repo responsiveness

Before expanding the watchlist or burning agent tokens on noisy repos, we run a 90-day replay sweep: same detectors + mock agent, matured T+1d/T+7d price outcomes. Repos get an A/B/C tier — A means historical commit signals co-moved with price; C means deprioritize.

See live tier table

Sweeps run in the background (worker cron + cache). Public scans use mock scoring; live agent reasoning requires an admin engagement.

How the agent scores

LLM via NVIDIA API
Versioned rubric (v4) · conviction 0-100
conviction
0-100
thesis
280 chars
action
long/short/none
confidence
low/mid/high

Every score (including sub-threshold) stored in agent_scores with timestamp + rubric version. The scorecard reads from that table — every public claim traces to a verifiable row.

Why a versioned rubric

When the prompt or model changes, the version bumps and the scorecard slices performance by version. v4 (Jul 2026) hardened calibration: commit-driven theses must cite the SHA and its code-level meaning, news-only signals are hard-capped at conviction 65, and the agent sees the open book — no pile-ons, no evidence-free reversals.

Safety gates

Failing any gate downgrades to paper — the signal still ships, no on-chain action.

1

Kill switch

TRADING_ENABLED defaults false. No swap fires until operator opts in.

2

Asset registry

Only verified tokens with real on-chain addresses. Unlisted assets → paper.

3

Chain-ID guard

Live trades refuse unless chainId matches mainnet. Catches misconfigured RPC.

4

Balance preflight

Wallet must hold amountIn + gas buffer. Catches underfunded wallets pre-swap.

5

Liquidity floor

Pool TVL must exceed registry floor ($5M default). Catches dried-up liquidity.

6

Position caps

Max open positions + per-asset concentration limits. Prevents overexposure.

Position lifecycle

Step 1
Open

A tracked position opens in the recommended direction — long or short, labeled paper. Entry price snapshotted at open. (Live mode swaps on-chain; gated off until calibration clears.)

Step 2
Settle

TP/SL written at open, conviction-scaled and direction-aware. 5-min scheduler checks live price.

Step 3
Close

TP/SL hit, signal reversal, or manual exit closes at market price. Realized P&L recorded, direction-aware.

All three milestones recorded — the portfolio shows realized + unrealized P&L from the same tables.

Why paper first

Every trade today is paper. That's the strategy, not a placeholder. Live trading flips on only after the calibration loop shows higher conviction = better outcomes (target: n ≥ 30 closed positions) and A-tier repos justify live agent spend.

Calibration loop

Change
Measure
Compare
Keep/Rollback
Does conviction 80+ actually outperform 70-79? (Data pending — threshold recently adjusted.)
Does the 30-minute settling delay filter already-priced-in noise?
Which repos are A-tier in the 90d replay — and does live agent scoring agree with mock?
Which detectors carry predictive weight vs decoration? The by-detector table answers this as outcomes accumulate.

Proof chain

Hedera HCS

Consensus timestamp, microsecond precision, tamper-evident.

Arbitrum

SignalRegistry contract stores signal hash on-chain.

IPFS

Evidence, screenshots, metadata — immutable package.

Three independent authorities — impossible to misremember a call. Visible on every signal detail page, linked from the scorecard.