SCHEMA
Status CONNECTING
Latency --
SOL Price --
Proof --

10 tools. One oracle. Solana agents trust.

Verified prices, rug checks, market sentiment, policy engine, and web snapshots in one endpoint.
Cryptographic proof on every response. Free 100 calls/day.

AI agents can't trust unverified API responses. Schema fetches from the official DexScreener API and generates a zkTLS proof that the data is real, untampered, and timestamped. Install the SDK and ship.

$ npm install @schema/sdk

LIVE API — TRY EVERY TOOL

CLICK ANY TOOL — REAL DATA, REAL PROOFS, REAL-TIME

Tool schema_get_price
What it does Returns verified SOL price with zkTLS proof from DexScreener.
Request GET /api/solana/price/So111...1112
Loading...

10 TOOLS — SDK EXAMPLES

1. Verified Token Price

Get the current price for any Solana token from the highest-liquidity pool. Every response includes a zkTLS cryptographic proof that the price came from DexScreener and was not tampered with.

schema_get_price
import { Schema } from '@schema/sdk';
const schema = new Schema();

const price = await schema.getVerifiedPrice("So111...1112");
console.log(price.data.priceUsd);   // 142.50
console.log(price.data.symbol);     // "SOL"
console.log(price.proof.hash);       // "zktls:9f3a..."
console.log(price.verified);          // true

2. Rug Pull Safety Check

Scores any token 0-100 based on liquidity depth, pair age, transaction volume, and price action. Returns specific warnings like "Token is less than 1 hour old" or "Extremely low liquidity." Use this before buying any token.

schema_rug_check
const safe = await schema.verifyRugSafe("TOKEN_ADDRESS");

if (safe.data.safe && safe.data.score >= 70) {
  executeBuy(safe.data.tokenAddress);
} else {
  console.log(safe.data.warnings);
  // ["Extremely low liquidity (<$1,000)", "Token is less than 1 hour old"]
}

3. Market Sentiment Analysis

Gauges market mood using DexScreener trading data: buy/sell pressure (40% weight), volume trends (30%), and price momentum (30%). Returns a 0-100 score with labels from Extreme Fear to Extreme Greed. Supports 1h, 6h, and 24h timeframes. Zero cost — no paid API needed.

schema_get_sentiment
const mood = await schema.getMarketSentiment("TOKEN_ADDRESS", "24h");

console.log(mood.data.score);              // 72
console.log(mood.data.label);              // "Greed"
console.log(mood.data.breakdown);
// { buyPressure: 68, volumeTrend: 80, priceMomentum: 65 }

4. Agent-Pay Policy Engine

Evaluates every automated payment against three tiers of safety checks before execution. L0: amount limits (reject ≤0 or >1 SOL, auto-approve <0.1 SOL). L1: unknown recipient flagging. L2: daily spend limits and velocity controls (>10 txns/hour). Returns APPROVED with an unsigned transaction template, PENDING_USER_CONFIRMATION, or REJECTED. Never touches private keys. Spend tracking persists across restarts via SQLite.

schema_check_policy
const check = await schema.checkTransactionPolicy(
  "RECIPIENT_WALLET",   // recipient address
  0.05,                   // amount in SOL
  "tip for content"      // purpose
);

if (check.data.decision === "APPROVED") {
  const tx = check.data.transactionTemplate;
  // { recipient: "...", lamports: 50000000, memo: "tip for content" }
  sendTransaction(tx);
} else {
  console.log(check.data.reason);
  // "Recipient X is not in the known-recipients list."
}

5. Web Page Snapshot

Extracts content from any web page using CSS selectors and returns it with a cryptographic proof of origin. Smart fallback: if the matched text is under 200 characters, automatically enriches the response with the page title, meta description, and JSON-LD structured data. Useful for verifying web content, scraping data, or checking page metadata.

verify_page_metadata
const snap = await schema.verifyWebContent(
  "https://example.com",
  "h1"
);

console.log(snap.data.content);       // "Example Domain"
console.log(snap.data.contentHash);   // "a3b9c2..."
console.log(snap.data.matchCount);   // 1
// Smart fallback fields (when content < 200 chars):
// snap.data.pageTitle, snap.data.metaDescription, snap.data.structuredData

6. Pool Liquidity Verification

Returns cryptographically proven liquidity for any Solana pool address. Verify that a pool actually has the depth reported before executing trades. Prevents bad fills from stale or manipulated liquidity data.

schema_get_liquidity
const liq = await schema.getVerifiedLiquidity("POOL_ADDRESS");

console.log(liq.data.liquidityUsd);   // 1234567.89
console.log(liq.data.baseToken);      // "SOL"
console.log(liq.data.quoteToken);     // "USDC"
console.log(liq.data.dex);            // "raydium"

7. Generic URL Verification

Fetch any URL and return the raw data with a cryptographic proof that it came from that specific source at that specific time. Supports JSON path selectors like "pairs[0].liquidity.usd" to extract specific values from API responses. The base primitive that all other tools are built on.

schema_verify
const result = await schema.verify({
  url: "https://api.dexscreener.com/latest/dex/pairs/solana/POOL",
  selector: "pairs[0].liquidity.usd",
  proofType: "zkTLS"
});

console.log(result.data);          // 1234567.89
console.log(result.proof.hash);    // "zktls:a4f2..."
console.log(result.verified);       // true

API ENDPOINTS

GET /oracle/api/solana/price/:tokenAddress Verified token price
GET /oracle/api/solana/liquidity/:poolAddress Verified pool liquidity
GET /oracle/api/solana/rug-check/:tokenAddress Token safety analysis
GET /oracle/api/sentiment/:tokenAddress Market sentiment analysis
POST /oracle/api/policy/check Agent-Pay policy engine
POST /oracle/api/snapshot Web content snapshot
POST /oracle/api/verify Verify any URL with proof
GET /oracle/.well-known/mcp.json MCP tool discovery (10 tools)
GET /oracle/.well-known/llm-context LLM best-practice guide

MCP-Native: Agents Find You Automatically

Schema exposes a standard Model Context Protocol endpoint. Claude, Cursor, Grok, and any MCP-compatible agent will auto-discover your tools with zero configuration.

https://moai.studio/oracle/.well-known/mcp.json

BUILT FOR SOLANA AGENTS

01

Pre-Trade Verification

Verify liquidity depth and token legitimacy before every swap. Get cryptographic proof the pool actually has the liquidity DexScreener reports.

02

Rug Pull Prevention

Score any token 0-100 based on liquidity, pair age, volume, and price action. Agents refuse to buy anything below threshold with verified reasoning.

03

Portfolio Valuation

Price every token in a wallet with proven data. No trusting cached or stale prices. Every valuation comes with a timestamped proof.

04

Sniper Bot Safety

Before sniping a new token, verify the pool isn't a honeypot. Check liquidity lock status and creator wallet patterns with verified data.

05

Market Sentiment

Gauge market mood before trading. DexScreener buy/sell ratios, volume trends, and price momentum scored 0-100 from Extreme Fear to Extreme Greed.

06

Automated Payment Safety

Agent-Pay policy engine evaluates every transaction against amount limits, recipient trust lists, and velocity controls. Never send funds without a policy check.

07

Web Content Verification

Snapshot any web page with CSS selectors and get cryptographic proof. Smart fallback enriches thin content with meta descriptions and JSON-LD structured data.

08

Arbitrage Confirmation

Verify price discrepancies across DEXes are real before executing arb. Proven prices prevent executing on stale or manipulated data.

09

AI Agent Swarms

Multiple agents sharing market intelligence need a trusted data layer. Schema proofs let agents verify each other's data without trust assumptions.

PRICING

Basic
$10
/ month
  • 1,000 calls / day
  • Priority queue
  • All endpoints included
  • zkTLS proofs
Pro
$100
/ month
  • 10,000 calls / day
  • Fastest queue
  • All endpoints included
  • zkTLS proofs
Pay As You Go
$0.01
/ call
  • Unlimited calls
  • SOL / USDC on-chain
  • Stripe fallback
  • No commitment