Build on Prism
Prism's data is open to developers: a CORS-enabled REST API with no key required, and a zero-dependency React hooks library on top of it. Catalogue, prices, reserve verification and staking totals for 2,000+ verified tokenized assets across 17 networks. The API reads data; it never holds keys, signs transactions or routes trades.
On top of that sits the Prism Verify API: an independent trust grade for any tokenized asset, and three things offered nowhere else — a head-to-head comparison of rival wrappers, a single trust score for a whole portfolio, and a post-quantum-signed reserve attestation a reader can verify without trusting us.
The REST API
Every response is a { ok, data } envelope. Responses are cached for about a minute at the edge.
/api/v1/assetsThe catalogue, paginated. Filters: category (comma-separated), tradeable=1, q (free text), sort (marketCap, yield, price, change24h, change30d, risk, liquidity, newest, alphabetical), limit (max 48), cursor.
curl 'https://prismassets.shop/api/v1/assets?category=treasuries&sort=yield&limit=5'
/api/v1/assets/:slugOne listing in full: the asset record, its issuer, and related listings.
curl 'https://prismassets.shop/api/v1/assets/paxos-paxg'
/api/v1/statsMarketplace totals: market cap, volume, asset and issuer counts, median yield.
curl 'https://prismassets.shop/api/v1/stats'
/api/v1/reserve-watchThe supply-verification table: on-chain supply against the issuer's published figure, with drift and status per covered listing.
curl 'https://prismassets.shop/api/v1/reserve-watch'
/api/v1/stakingProtocol-wide PRISM staking totals, as base-unit strings exactly as the chain reports them.
curl 'https://prismassets.shop/api/v1/staking'
The Prism Verify API
An independent, live verification of any tokenized asset, not only Prism's own listings. Key-free and open to any origin. Query by symbol, name or contract address. Three of these endpoints exist nowhere else in the market.
/api/verify?q=PAXGThe full trust report for one asset, resolved by symbol, name or contract: every signal graded, the register dossier, and a single grade from AAA to C. The seed of everything below.
curl 'https://prismassets.shop/api/verify?q=PAXG'
/api/verify/compare?a=PAXG&b=XAUTFound nowhere elseA head-to-head reading of two wrappers of the same underlying, graded against one standard, with a verdict on which stands up better and by how many points.
curl 'https://prismassets.shop/api/verify/compare?a=PAXG&b=XAUT'
/api/verify/portfolio?q=PAXG,XAUT,NVDAFound nowhere elseA whole basket in one call, returned as a single weighted portfolio trust score, the grade it implies, and the weakest holding the average conceals. Add w= for custom weights.
curl 'https://prismassets.shop/api/verify/portfolio?q=PAXG,XAUT,NVDA&w=50,30,20'
/api/verify/attest?q=BUIDLFound nowhere elsePrism's reserve statement signed with ML-DSA-65 (NIST FIPS 204), the quantum-resistant successor to elliptic-curve signatures. Returns the signature, public key and exact canonical message, so a caller verifies for itself without trusting Prism. The private key is generated and used offline and never reaches the server.
curl 'https://prismassets.shop/api/verify/attest?q=BUIDL'
/api/verify/suggest?q=goldTypeahead matches for the search field: ranked, deduplicated by ticker, each with its logo, category and network.
curl 'https://prismassets.shop/api/verify/suggest?q=gold'
/api/verify/badge?q=PAXGThe live grade as an SVG badge any page can hotlink; it re-reads the current grade on every load and links back to the full report.
curl 'https://prismassets.shop/api/verify/badge?q=PAXG'
The signed attestation returns the public key and the exact canonical message alongside the signature; a reader verifies it with ml_dsa65.verify in its own runtime. Try any grade in the browser at prismassets.shop/verify.
React hooks
prism-rwa-hooks wraps the API in typed hooks with no dependencies beyond React. Every hook returns { data, error, loading, refresh }.
import { usePrismAssets, usePrismPrice } from "prism-rwa-hooks";
function GoldShelf() {
const { data, loading } = usePrismAssets({
category: "precious-metals",
sort: "marketCap",
limit: 6,
});
if (loading) return <p>Loading…</p>;
return (
<ul>
{data?.items.map((a) => (
<li key={a.slug}>{a.symbol} — ${a.priceUsd}</li>
))}
</ul>
);
}
function LivePaxg() {
const { data } = usePrismPrice("paxos-paxg", { intervalMs: 30_000 });
return <span>PAXG: ${data?.asset.priceUsd ?? "…"}</span>;
}usePrismAssets(params)A page of the catalogue, filtered and sorted.
usePrismAsset(slug)One listing in full: asset, issuer, related.
usePrismPrice(slug, { intervalMs })The same detail payload, repolled for a live price.
usePrismStats()Marketplace totals.
useReserveWatch()Supply verification rows with drift and status.
useStakingTotals()Protocol-wide PRISM staking totals.
Fair use
The API is free for reasonable use and served from the edge cache. Do not poll faster than the data moves; catalogue figures update on the order of a minute. Attribution is appreciated: a link to prismassets.shop where the data appears.

