Pellet API — MPP Grade A
On-chain Activity
Compliance Checks
Paid Operations (11)
GET /api/mpp/addresses/{address} 0.01 USDC.e
MPP lookup for any Tempo address: human-readable label, ERC-8004 agent status (identity + reputation registry reads), and TIP-403 role forensics (which stablecoins grant this address minter/burner/pause authority). One round-trip; all on-chain measured. Unique vs. chain-generic wallet APIs (Nansen / Zerion / Codex) — nobody else indexes ERC-8004 + TIP-403 together on Tempo.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
authMode: paid maxPrice: 0.010 minPrice: 0.010 network: tempo price: 0.010 protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| address | path | string | Yes | Any Tempo address (0x-prefixed, 42 hex chars). EOA, contract, or ERC-8004 agent. |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| address | string | - |
| agent | object | - |
| coverage | string | - |
| coverage_note | [string null] | - |
| deferred | array[string] | Coverage gaps Pellet has NOT measured yet — agent should consider these open questions, not absence. |
| is_burn_blocked_by | array[string] | - |
| is_issuer_of | array[string] | - |
| is_minter_of | array[string] | - |
| is_pauser_of | array[string] | - |
| label | [object null] | - |
| policies_administered | object | Every tracked TIP-20 stablecoin where this address is the TIP-403 policy admin. Scans all KNOWN_STABLECOINS via multicall of getPolicy(token). |
| roles | array[object] | - |
| stats | object | - |
GET /api/mpp/stablecoins 0 USDC.e
Zero-charge MPP mirror of /api/v1/stablecoins. Same response shape; client proves wallet identity via a signed $0 voucher. Use this when you want the call to appear in your agent's MPP ledger or when consuming through an MPP-aware client.
- Amount
- 0
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
authMode: paid maxPrice: 0.000000 minPrice: 0.000000 network: tempo price: 0.000000 protocols: [mpp]
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| stablecoins | array | - |
GET /api/mpp/stablecoins/flows 0.01 USDC.e
Hourly net flow data between Tempo stablecoins routed through the enshrined Tempo DEX precompile. (from, to, net_flow_usd, tx_count) rows at 1h granularity.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
authMode: paid maxPrice: 0.010 minPrice: 0.010 network: tempo price: 0.010 protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| hours | query | integer | No | Lookback window in hours (default 24, max 168) |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| flows | array[object] | - |
| hours | integer | - |
GET /api/mpp/stablecoins/flow-anomalies 0.02 USDC.e
15-minute windows where flow on a (from, to) edge exceeded its 7-day rolling baseline by ≥3 standard deviations. Derived analytics on top of the hourly flow feed — priced above raw flows because it composes the z-score baseline plus the anomaly detection pass.
- Amount
- 0.02 (raw 20000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
authMode: paid maxPrice: 0.020 minPrice: 0.020 network: tempo price: 0.020 protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | No | Max number of anomaly records to return (default 20, max 100). |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| anomalies | array[object] | - |
| as_of | string (date-time) | - |
GET /api/mpp/stablecoins/{address}/peg 0.01 USDC.e
Current peg sample vs. pathUSD (direct on-chain DEX quote, sub-bp accuracy — not oracle estimate) plus rolling 1h/24h/7d aggregates. Supports historical snapshots via `?as_of=`. The sub-bp accuracy vs aggregator oracle feeds is the category story.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
authMode: paid maxPrice: 0.010 minPrice: 0.010 network: tempo price: 0.010 protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| address | path | string | Yes | Stablecoin contract address (0x-prefixed, 42 hex chars). Tempo stablecoins are deployed via the TIP-20 factory and share a 0x20c0… prefix. |
| as_of | query | string | No | Optional historical snapshot timestamp. ISO8601, epoch seconds, or relative (e.g. '1h', '24h', '7d'). |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| address | string | - |
| as_of | [string null] (date-time) | - |
| current | object | - |
| windows | array[object] | - |
GET /api/mpp/stablecoins/{address}/risk 0.05 USDC.e
Composite risk score (0–100) with four explainable sub-scores: peg_risk, peg_break_risk, supply_risk, policy_risk. Each sub-score is measured independently, then combined into the composite. Supports historical snapshots via `?as_of=`.
- Amount
- 0.05 (raw 50000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
authMode: paid maxPrice: 0.050 minPrice: 0.050 network: tempo price: 0.050 protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| address | path | string | Yes | Stablecoin contract address (0x-prefixed, 42 hex chars). Tempo stablecoins are deployed via the TIP-20 factory and share a 0x20c0… prefix. |
| as_of | query | string | No | Optional historical snapshot timestamp. |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| address | string | - |
| as_of | [string null] (date-time) | - |
| components | object | - |
| composite | number | - |
GET /api/mpp/stablecoins/{address}/reserves 0.02 USDC.e
Total backing + per-reserve-type composition with attestation source and issuer. Priced at the analytics tier because each record resolves an attestation source plus the issuer-provided backing breakdown. Supports historical snapshots via `?as_of=`.
- Amount
- 0.02 (raw 20000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
authMode: paid maxPrice: 0.020 minPrice: 0.020 network: tempo price: 0.020 protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| address | path | string | Yes | Stablecoin contract address (0x-prefixed, 42 hex chars). Tempo stablecoins are deployed via the TIP-20 factory and share a 0x20c0… prefix. |
| as_of | query | string | No | Optional historical snapshot timestamp. |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| address | string | - |
| as_of | [string null] (date-time) | - |
| reserves | array[object] | - |
| total_backing_usd | [number null] | - |
GET /api/mpp/tip403/simulate 0 USDC.e
Zero-charge MPP mirror of /api/v1/tip403/simulate. Agents go through the standard 402 identity challenge (signing a $0 voucher) and receive the same simulation result. Use this when you want the call to appear in your agent's MPP ledger or when consuming Pellet through an MPP-aware client. Protocol-level use case: every agent should call this before submitting a TIP-20 transfer, to avoid wasting gas on a revert.
- Amount
- 0
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
authMode: paid network: tempo price: 0.000000 protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| from | query | string | Yes | Sender address (0x-prefixed, 42 hex chars) |
| to | query | string | Yes | Recipient address (0x-prefixed, 42 hex chars) |
| token | query | string | Yes | Token contract address. TIP-20 addresses on Tempo use the 0x20c0… factory-deployed pattern. |
| amount | query | string | No | Optional raw uint256 decimal string (e.g. '1000000' for 1 USDC.e given 6 decimals). If provided, sender balance is checked after policy authorization. |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| balance | [object null] | - |
| blockedBy | [string null] | - |
| blockedParty | [string null] | - |
| coverage | string | - |
| coverage_note | [string null] | - |
| policyAdmin | [string null] | - |
| policyId | [integer null] | - |
| policyType | [string null] | - |
| reason | string | - |
| recipient | object | - |
| sender | object | - |
| simulatedAtBlock | string | - |
| willSucceed | [boolean null] | true = pass, false = blocked (see blockedBy), null = unknown (coverage:partial). Do NOT interpret null as false. |
GET /api/mpp/stablecoins/{address}/rewards 0.1 USDC.e
On-chain reward data via the TIP-20 reward precompile: opted-in supply, global reward-per-token accumulator, funder attribution, and effective APY. Pellet is the first and only service on Tempo indexing the TIP-20 reward precompile — no peer anywhere. This is a yield-allocation input; priced at the first-mover tier because no competitive parity exists. Supports historical snapshots via `?as_of=`.
- Amount
- 0.1 (raw 100000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
authMode: paid maxPrice: 0.100 minPrice: 0.100 network: tempo price: 0.100 protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| address | path | string | Yes | Stablecoin contract address (0x-prefixed, 42 hex chars). Tempo stablecoins are deployed via the TIP-20 factory and share a 0x20c0… prefix. |
| as_of | query | string | No | Optional historical snapshot timestamp. |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| address | string | - |
| as_of | [string null] (date-time) | - |
| effective_apy | [number null] | Annualized yield on opted-in supply, or null if no emissions in window |
| funders | array[object] | - |
| global_reward_per_token | [string null] | - |
| opted_in_supply | string | Raw uint256 — divide by decimals for human form |
| recent_distributions | array[object] | - |
GET /api/mpp/tokens/{address}/briefing 0.2 USDC.e
MPP-discoverable mirror of /api/v1/tokens/{address}/briefing. Identical output — peg, policy, reserves, rewards, risk, flows, role holders, plus a coverage & provenance ledger (per-section complete|partial|unavailable flags, block-pinned reproducibility, and the data lineage map for every section). Pure measurement, no model synthesis. Lives at /api/mpp/* so MPPScan's directory crawler indexes it alongside the other measurement routes.
- Amount
- 0.2 (raw 200000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
authMode: paid maxPrice: 0.200 minPrice: 0.200 network: tempo price: 0.200 protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| address | path | string | Yes | Token contract address (0x-prefixed, 42 hex chars). The token must exist on Tempo mainnet. |
| refresh | query | boolean | No | If true, bypasses any cached briefing and forces recomputation. |
| sections | query | string | No | Comma-separated list of sections to include. Allowed: market, safety, compliance, holders, identity, origin, evaluation. Default: all. |
Response Schema (200)
{
"$ref": "#/components/schemas/BriefingResult"
}
GET /api/v1/tokens/{address}/briefing 0.2 USDC.e
Runs the full Pellet Open-Ledger Interface (OLI) pipeline for any Tempo TIP-20 stablecoin and returns a structured briefing document covering: live peg spread vs pathUSD (direct on-chain DEX measurement, not oracle estimate), TIP-403 policy enforcement (allowlist / blocklist / compound, pause state, supply cap headroom), reserve and backing breakdown with attestation source, TIP-20 reward attribution and effective APY, fee-token economics, composite risk score (0–100) with explainable sub-scores (peg_risk, peg_break_risk, supply_risk, policy_risk), DEX flow topology and cross-stable flow anomalies, role-holder enumeration (admin / minter / burner), peg-break event history, and a coverage & provenance ledger (per-section complete|partial|unavailable flags, block-pinned reproducibility, and the on-chain data lineage map for every section). Every numeric value is a direct on-chain measurement — null when unmeasured, never a synthetic estimate, no model synthesis.
- Amount
- 0.2 (raw 200000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
authMode: paid maxPrice: 0.200 minPrice: 0.200 network: tempo price: 0.200 protocols: [x402]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| address | path | string | Yes | Token contract address (0x-prefixed, 42 hex chars). The token must exist on Tempo mainnet. |
| refresh | query | boolean | No | If true, bypasses any cached briefing and forces recomputation. Default: false (current implementation always computes fresh — this flag is reserved for future caching). |
| sections | query | string | No | Comma-separated list of sections to include in the response. Allowed values: market, safety, compliance, holders, identity, origin, evaluation. Default: all sections. |
Input Schema
{
"additionalProperties": false,
"type": "object"
}
Response Schema (200)
{
"$ref": "#/components/schemas/BriefingResult"
}
Payment Methods
- Methods
- tempo
- Intents
- charge
- Currencies (discovery)
- USDC.e
- Multiple Challenges
- No
Recipients
- 0x0Ce3d541f48c5c6543b84bd2FD9CBae0Fb9FeaFe
Per-endpoint breakdown
- GET /api/mpp/addresses/{address}
- 0x0Ce3d541f48c5c6543b84bd2FD9CBae0Fb9FeaFe
- GET /api/mpp/stablecoins
- 0x0Ce3d541f48c5c6543b84bd2FD9CBae0Fb9FeaFe
- GET /api/mpp/stablecoins/flow-anomalies
- 0x0Ce3d541f48c5c6543b84bd2FD9CBae0Fb9FeaFe
- GET /api/mpp/stablecoins/flows
- 0x0Ce3d541f48c5c6543b84bd2FD9CBae0Fb9FeaFe
- GET /api/mpp/stablecoins/{address}/peg
- 0x0Ce3d541f48c5c6543b84bd2FD9CBae0Fb9FeaFe
- GET /api/mpp/stablecoins/{address}/risk
- 0x0Ce3d541f48c5c6543b84bd2FD9CBae0Fb9FeaFe
Security
- TLS Version
- TLSv1.3
- Challenge ID Unique
- Yes
- Challenge ID Length
- 43
- Digest Binding
- -
Uptime
- Discovery
- Reachable (52ms)
- Challenge
- Reachable (213ms)
- Last Checked
Schema Completeness
- Paid Operations
- 11
- With Input Schema
- 1
- With Description
- 11
10 missing schema
- GET /api/mpp/addresses/{address}
- GET /api/mpp/stablecoins
- GET /api/mpp/stablecoins/flows
- GET /api/mpp/stablecoins/flow-anomalies
- GET /api/mpp/stablecoins/{address}/peg
- GET /api/mpp/stablecoins/{address}/risk
- GET /api/mpp/stablecoins/{address}/reserves
- GET /api/mpp/tip403/simulate
- GET /api/mpp/stablecoins/{address}/rewards
- GET /api/mpp/tokens/{address}/briefing
Documentation
- Homepage
- https://pelletfi.com
- API Reference
- https://pelletfi.com/docs/api
- llms.txt
- https://pelletfi.com/docs/oli reachable
Discovery
- OpenAPI URL
- https://pelletfi.com/openapi.json
- OpenAPI Version
- 3.1.0
- Service Version
- 1.0.0
- Document Size
- 52344 bytes
- Document Hash
- f40091659192bf85733dfda359a20417ee803e449e20bf381d6c8e8dc732d338
Version History (4 snapshots)
- document hash changed (no semantic differences detected)
- price changed on GET /api/mpp/addresses/{address}: 0 → 10000
- price changed on GET /api/mpp/stablecoins/flow-anomalies: 0 → 20000
- price changed on GET /api/mpp/stablecoins/flows: 0 → 10000
- price changed on GET /api/mpp/stablecoins/{address}/peg: 0 → 10000
- price changed on GET /api/mpp/stablecoins/{address}/reserves: 0 → 20000
- price changed on GET /api/mpp/stablecoins/{address}/rewards: 0 → 100000
- price changed on GET /api/mpp/stablecoins/{address}/risk: 0 → 50000
- price changed on GET /api/mpp/tokens/{address}/briefing: 50000 → 200000
- price changed on GET /api/v1/tokens/{address}/briefing: 50000 → 200000
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- new endpoint: GET /api/mpp/addresses/{address}
- document hash changed (no semantic differences detected)
- new endpoint: GET /api/mpp/tip403/simulate
- new endpoint: GET /api/mpp/tokens/{address}/briefing
- new endpoint: GET /api/mpp/stablecoins
- new endpoint: GET /api/mpp/stablecoins/flow-anomalies
- new endpoint: GET /api/mpp/stablecoins/flows
- new endpoint: GET /api/mpp/stablecoins/{address}/peg
- new endpoint: GET /api/mpp/stablecoins/{address}/reserves
- new endpoint: GET /api/mpp/stablecoins/{address}/rewards
- new endpoint: GET /api/mpp/stablecoins/{address}/risk
- document hash changed (no semantic differences detected)
Scan snapshots
| Date | Grade | Score | Response | Status |
|---|---|---|---|---|
| 2026-04-16 | A | 98% | 858ms | Up |
| 2026-04-17 | A | 98% | 70ms | Up |
| 2026-04-18 | A | 98% | 72ms | Up |
| 2026-04-19 | A | 98% | 55ms | Up |