---
name: oracle-network-onchain-signal.fly.dev
description: oracle-network-onchain-signal.fly.dev provides three signal-scoring endpoints that accept caller-supplied onchain data and return structured risk or classification outputs. It covers rug-pull risk scoring for tokens, bot-vs-human classification for wallets, and wash-trade-filtered floor price computation for NFT markets.
host: oracle-network-onchain-signal.fly.dev
---

# oracle-network-onchain-signal.fly.dev

This host serves agents that have already gathered raw onchain data and need a second-pass analytical layer to interpret it. Rather than fetching live market data itself, it accepts pre-fetched signals as inputs and returns scored, classified, or filtered outputs. It is suited for risk gating, behavioral analytics, and price integrity checks in DeFi and NFT contexts.

## When to use this host

Use this host when an agent has already collected raw onchain metadata and needs structured risk scores, behavioral classifications, or wash-trade-adjusted price signals. It is the right choice for pre-trade safety checks, bot-gating logic, and NFT floor integrity validation. Do not use it for live price feeds, token balance queries, smart contract code audits, or any task requiring the host to fetch onchain data autonomously — all three skills require the caller to supply the underlying data. For live market data or DEX quotes, route to a dedicated price feed or DEX aggregator API instead.

## Capabilities

### Onchain Risk Scoring

Evaluates behavioral and structural signals to produce risk assessments. Covers token rug-pull likelihood and wallet bot classification, both returning numeric scores and explanatory signals.

- **`score-token-rug-risk`** — Scores onchain rug-pull risk for a token by accepting live network signals and returning a numeric risk score, risk level, and explanatory reasons.
- **`classify-onchain-wallet`** — Classifies an onchain wallet as bot-likely or human based on behavioral signals derived from transaction history, intervals, and program activity.

### Market Integrity Signals

Filters submitted trade records to remove wash-trading noise and returns a clean floor price signal alongside wash percentage and clean trade count.

- **`fetch-real-floor-signal`** — Accepts a list of onchain trades and returns a wash-trade-filtered real floor price signal with raw floor, clean trade count, and wash percentage.

## Workflows

### New Token Safety Gate

*Use when an agent needs to vet both the token and the wallets interacting with it before recommending or executing a trade on a newly launched token.*

1. **`score-token-rug-risk`** — Score the token's rug-pull risk using its age, liquidity, holder distribution, and authority status to decide whether to proceed.
2. **`classify-onchain-wallet`** — Classify the wallets driving recent transaction volume as bot-likely or human to assess whether apparent activity is organic.

## Skill reference

### `score-token-rug-risk`

**Rug Risk Oracle** — Scores onchain rug-pull risk for a token by accepting live network signals and returning a numeric risk score, risk level, and explanatory reasons.

*Use when:* Use when an agent needs to evaluate whether a token is likely a rug pull before recommending or executing a trade, given token age, liquidity, holder distribution, transaction activity, and authority status.

*Not for:* Do not use for general token price discovery or market data; use a price feed or DEX quote API instead. Not suitable for auditing smart contract code — this scores behavioral signals only.

**Inputs:**

- `mintAddress` (string, required) — The mint address of the token being evaluated.
- `ageMinutes` (integer, required) — Age of the token in minutes since creation.
- `txCount24h` (integer, required) — Total number of transactions in the last 24 hours.
- `holderCount` (integer, required) — Current number of unique token holders.
- `liquiditySOL` (number, required) — Total liquidity in SOL available for the token.
- `topHolderPct` (number, required) — Fraction of supply held by the top holder (0.0–1.0).
- `uniqueBuyers24h` (integer, required) — Number of unique buyer addresses in the last 24 hours.
- `authoritiesDisabled` (boolean, required) — Whether mint and freeze authorities have been disabled (renounced).

**Returns:** Returns a numeric score, a risk level string (e.g. 'high-risk'), and an array of reasons describing the specific onchain signals that drove the assessment.

**Example:** `{"mintAddress":"So11111111111111111111111111111111111111112","ageMinutes":180,"txCount24h":1200,"holderCount":340,"liquiditySOL":12.5,"topHolderPct":0.42,"uniqueBuyers24h":80,"authoritiesDisabled":false}`

---

### `classify-onchain-wallet`

**Wallet Classifier** — Classifies an onchain wallet as bot-likely or human based on behavioral signals derived from transaction history, intervals, and program activity.

*Use when:* Use when an agent needs to determine whether a wallet address exhibits bot-like or human behavior before interacting with it, gating access, or scoring it for analytics purposes.

*Not for:* Do not use for token price lookups, balance queries, or identity verification — this endpoint only classifies behavioral patterns from provided transaction metadata.

**Inputs:**

- `address` (string, required) — The onchain wallet address to classify.
- `chain` (string, required) — The blockchain network the wallet operates on.
- `txCount` (integer, required) — Total number of transactions the wallet has made.
- `ageMs` (number, required) — Age of the wallet in milliseconds since first transaction.
- `txIntervalsMs` (array, required) — Array of time intervals in milliseconds between consecutive transactions, used to detect uniform bot-like patterns.
- `uniquePrograms` (integer, required) — Number of unique smart contracts or programs the wallet has interacted with.
- `hasNFT` (boolean, required) — Whether the wallet holds any NFTs.
- `hasENSorSNS` (boolean, required) — Whether the wallet has an ENS or SNS name registered.

**Returns:** Returns a classification label (e.g. 'bot-likely'), a botScore integer (0–100), and a signals array listing the behavioral patterns that drove the classification.

**Example:** `{"address":"0x402Feee072D655B85e08f1751AF9ddbCd249521f","chain":"base","txCount":1500,"ageMs":7776000000,"txIntervalsMs":[60000,60100,59900,60050,59950],"uniquePrograms":2,"hasNFT":false,"hasENSorSNS":false}`

---

### `fetch-real-floor-signal`

**Real Floor Oracle** — Accepts a list of onchain trades and returns a wash-trade-filtered real floor price signal with raw floor, clean trade count, and wash percentage.

*Use when:* Use when an agent needs to compute the real (wash-trade-adjusted) floor price for an NFT collection or asset market given a set of recent trade records, distinguishing genuine price discovery from wash trading.

*Not for:* Do not use for streaming or real-time price feeds; this is a single-shot computation over a submitted trade list. Not suitable for fetching live market data without supplying trade records.

**Inputs:**

- `trades` (array, required) — Array of trade objects to analyze. Each trade must include buyer address, seller address, price in SOL, and a Unix millisecond timestamp.

**Returns:** Returns rawFloor and realFloor prices in SOL, washPct as a fraction of wash trades detected, and cleanTradeCount of non-wash trades remaining.

**Example:** `{"trades":[{"buyer":"ABCxyz1234567890","seller":"DEFuvw0987654321","priceSOL":1.2,"timestamp":1714960800000},{"buyer":"DEFuvw0987654321","seller":"ABCxyz1234567890","priceSOL":0.5,"timestamp":1714961000000}]}`

---
