Skip to content

configuration & method

Settings

Every value that decides what Mintline reports, and where it came from. Nothing on this page is a preference you can toggle — it is the actual configuration this deployment is running.

storage adapter

neon

round trip 18ms

hosted Postgres via the Neon HTTP driver

claims visible

5

this session + reference

session scope

s_65a40e2eebf5904cd18aa549a32cad19bb97

signed, HTTP-only cookie

how this deployment is wired

Configuration and method reference
concernimplementation
Persistence (production)Neon Postgres via the Vercel integration. `DATABASE_URL` must be set; `/api/health` fails the deployment if it is not.
Persistence (local)Embedded PGlite in `.mintline-data`, or in-memory when the directory is unwritable. Selected only when `DATABASE_URL` is absent.
Chain metadataSolana public RPC. `getAccountInfo` on the derived Metaplex PDA, `getTokenSupply`, and `getTokenLargestAccounts` on a best-effort basis.
Market structureDexScreener `/latest/dex/tokens/{mint}` for pairs, liquidity, volume and creation time.
Price corroborationJupiter lite price API v3, compared against DexScreener to surface divergence between two independent readings.
Off-chain metadataThe JSON at the token's `uri`, fetched only from an allow-list of IPFS/Arweave/NFT-S.Storage hosts over HTTPS.
Server comparatorlexical-cosine-v1 (char 3-gram + token overlap). Deterministic, no model, no network.
Browser comparatorXenova/all-MiniLM-L6-v2 (int8, on-device) — 22M parameters, Apache-2.0, roughly 23 MB, fetched once and then cached by the browser.
Enginemintline-assay-v1.0.0. Six weighted factors summing to 1.00, published in every response.
Chain rulegenesis = SHA-384(UTF-8("mintline/genesis/v1")); seal(n) = SHA-384(UTF-8(seal(n-1)) || canonicalJson(event(n))).
Agent interfaceJSON-RPC 2.0 at https://mintline-eight.vercel.app/api/mcp, protocol 2025-06-18, 10 tools.
AuthNone. A signed, HTTP-only, SameSite=Lax cookie carries an unguessable session id. Reads and writes are scoped by it; another session gets 404, not 403.

live sources

When every source is unreachable, mints that have a sealed sample return that sample with status: "fallback" and the capture timestamp. Fallback never replaces a stored claim.

validation limits

  • name max

    80

  • symbol max

    24

  • description max

    4000

  • note max

    600

  • mint length min

    32

  • mint length max

    44

  • query max

    64

  • limit max

    100

security model

  • · All SQL is parameterized; no string interpolation of user input into a query.
  • · Every write is scoped to a signed session id and validated before it reaches SQL.
  • · Error responses never include stack traces, SQL or environment values.
  • · Metadata JSON is fetched only from an HTTPS host allow-list, with a size and time cap.
  • · Rate limits are a fixed window held in process memory. On serverless this is per instance, so it stops casual scripting, not a determined flood. A global limit needs a hosted store.
  • · No secrets ship to the client; the browser model runs locally and sends nothing back.

try the sealed samples

These mints have a dated offline fixture, so the app stays usable if the chain or the indexers are down.

genesis 8d9fb932a27d3851dc94fd9272980918345a9deb1427fe7b5eedd2df40122cdf4224c9c5fcaf1de0809f04decd861123

disclaimer

Mintline measures observable structure: name collisions, metadata completeness, market depth, holder concentration and trading age. It does not predict price, does not evaluate whether a token is a good investment, and is not financial advice. A high provenance score means an identity is not obviously impersonating another; it is not an endorsement of the project behind it. Verify anything that matters against the issuer directly.