Skip to content

About

Plimsoll web app and TypeScript SDK: see how much of every Stellar-issued asset is backed, by whom, and how recently.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Plimsoll

CI Live on testnet Next.js 16 stellar-sdk 17 Docs Apache-2.0

Plimsoll app

The web app and TypeScript SDK for Plimsoll: see how much of every Stellar-issued asset is backed, who signed the reserve figure, and how old it is. Issuers and auditors post reports from here; anyone can list an asset.

Live: https://plimsoll-app-gths-amber.vercel.app/
Mirror: https://plimsoll-protocol.github.io/plimsoll-app/
Docs: https://plimsoll-protocol.gitbook.io/plimsoll-protocol-docs/

Repo What it is
plimsoll-contracts Rust/Soroban contracts
plimsoll-app (this repo) Web app and TypeScript SDK
plimsoll-indexer Go service: supply poster, event indexer, read API

Maintainers

Maintainer GitHub Contact
dunnidev @dunnidev GitHub Discussions

Layout

Path Purpose
packages/sdk @plimsoll/sdk: contract reads via RPC simulation, prepared write transactions, indexer client, formatting and hash verification.
apps/web Next.js 16 static export. Dashboard, asset detail, report submission, asset listing, integration guide.

The web app reads from the Plimsoll indexer when NEXT_PUBLIC_INDEXER_URL is set, and falls back to reading the coverage ledger directly over Soroban RPC. Because it is a static export, it runs on any static host.

Pages

Route What it does
/ Every listed asset with its coverage ratio, signer tier and report age
/asset/?sac=… Reports per tier, supply breakdown, stellar.toml data, and three in-browser checks: live coverage call, document hash, breakdown hash
/report/ Connect Freighter, hash a document locally, sign and post a reserve report. Shows the tier you will get before you sign.
/list/ List any classic asset; deploys its Stellar Asset Contract first if it has none
/integrate/ How to call is_covered from Rust, TypeScript and the CLI

Quick start

Node 22.12 or later.

git clone https://github.com/plimsoll-protocol/plimsoll-app
cd plimsoll-app
npm install
npm run dev        # builds the SDK, then serves http://localhost:3000

No .env is needed: everything defaults to the testnet deployment. To use an indexer, copy apps/web/.env.example to apps/web/.env.local and set NEXT_PUBLIC_INDEXER_URL.

npm test                         # SDK unit tests
PLIMSOLL_LIVE=1 npm test         # plus reads against the live testnet contracts
npm run build                    # static site in apps/web/out

SDK in 6 lines

import { PlimsollContracts, TESTNET, Tier, bpsToPercent } from "@plimsoll/sdk";

const plimsoll = new PlimsollContracts(TESTNET);
const cov = await plimsoll.coverage(TESTNET.assets.PUSD.sac, Tier.Transcribed);
console.log(bpsToPercent(cov!.bps)); // "102.00%"
const ok = await plimsoll.isCovered(TESTNET.assets.PUSD.sac, 10_000, 7 * 86_400, Tier.IssuerSigned);

Environment

Variable Default Purpose
NEXT_PUBLIC_STELLAR_RPC_URL https://soroban-testnet.stellar.org Soroban RPC
NEXT_PUBLIC_NETWORK_PASSPHRASE testnet Network passphrase
NEXT_PUBLIC_NETWORK_NAME testnet Label shown in the header and wallet checks
NEXT_PUBLIC_COVERAGE_LEDGER_ID testnet id coverage-ledger contract
NEXT_PUBLIC_REPORTER_REGISTRY_ID testnet id reporter-registry contract
NEXT_PUBLIC_INDEXER_URL hosted testnet indexer Indexer base URL; none reads from chain only
NEXT_PUBLIC_CHAIN_ASSETS PUSD,USDC SACs Assets shown when reading from chain
NEXT_PUBLIC_EXPLORER_URL stellar.expert testnet Explorer links
NEXT_PUBLIC_BASE_PATH empty Set to /plimsoll-app for GitHub Pages

Contributing

See CONTRIBUTING.md. Pick an issue, comment to be assigned, open one pull request per change. Security: SECURITY.md.

Contributors

Contributors

License

Apache-2.0

About

Plimsoll web app and TypeScript SDK: see how much of every Stellar-issued asset is backed, by whom, and how recently.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages