Customization
The embed widget is intentionally low-surface-area. The layout, colors, and interactions are fixed. The page owner controls a small set of content fields and the verification policy; nothing is customizable via the iframe URL or runtime JavaScript.
If you need more control than this page offers, use the JSON API directly and build your own UI.
What the owner can configure
All of these live in the tracking page's Settings pane in the Wallet Sleuth dashboard.
Content the widget renders
| Field | Where it's set | What the widget shows |
|---|---|---|
tokenName | Settings → Token | Large header text next to the symbol. |
tokenSymbol | Settings → Token | Muted, prefixed with $ (e.g. $JOBC). |
publicTitle | Settings → Public settings | Secondary header line, below token name. Nullable — hidden if empty. |
publicComments | Settings → Public settings | Tertiary line for a short blurb. Nullable — hidden if empty. |
All four are returned by GET /tracking/{id} if you want to drive a custom UI from the same data.
Wallet-level content
| Field | Where it's set | What the widget shows |
|---|---|---|
publicAlias | Per-wallet → Public settings | Overrides the wallet's displayed name in the table. Nullable. |
hideFromPublic | Per-wallet → Public settings | If true, the wallet is excluded from the embed payload entirely. |
| Tags (name + color) | Settings → Tags + Per-wallet → Tags | Colored pill badges on the wallet row. |
Verification policy
How visitor submissions are handled:
- Approval mode —
strict,trust_ladder, orauto. - CA holding gate — require submitters to hold a minimum balance of the page's token (or a custom mint).
- Trust-ladder threshold — how many approvals a pubkey needs before auto-approving future submissions.
- Pending queue cap — the maximum number of pending submissions before new ones are rejected with
queue_full.
All of this is covered in Concepts → Verification policy.
Enable / disable
| Flag | Where it's set | Effect |
|---|---|---|
isPublicEnabled | Settings → Visibility | Must be on, or embed returns 403 embed_disabled. |
embedEnabled | Settings → Embed API | Must be on, or embed returns 403 embed_disabled. |
API keys
Create, list, and revoke public and secret keys. Public-key settings include label, allowed origins, and the "allow null origin" flag. Keys are shown once at creation and never retrievable thereafter.
What the owner cannot configure
By design, the embed widget has no knobs for:
| Not configurable | Notes |
|---|---|
| Iframe dimensions | Set by the parent page via width/height on the iframe tag. |
| Colors, fonts, themes | The widget uses a dark theme with purple accents; there is no light mode and no custom palette. |
| Language / localization | English only. |
| Column order or visibility in the wallet table | Fixed: Wallet, Tags, Balance. |
| Sort order in the wallet table | Preserves the order from the tracking page payload. |
| Whether the submission form is shown | Always shown. Use CA gate or strict approval mode if you want to heavily gate submissions. |
| Branding removal | The "Powered by Wallet Sleuth" footer is not removable. |
Want more control?
Call the API directly. GET /tracking/{id} returns the same payload the iframe uses, and you can implement your own wallet table, submission form, and signing flow using the four public endpoints.
If you go that route:
- You still need an origin-allowlisted public key — same key type as the iframe uses.
- You're responsible for implementing the SIWS flow yourself. SIWS signing documents the protocol end-to-end.
- The session cookie (
embed_session,SameSite=None; Secure; Path=/embed) is set by the iframe; custom UIs that never load the iframe won't have it, which meansGET /session/submissionswill always return an empty list and nonces aren't rate-limited per session. All other rate limits (per-key, per-IP, per-wallet cooldown) still apply.
Related
- GET /tracking/{id} — the payload your UI would consume.
- Concepts → Verification policy — the knobs you do get.
- Snippet — back to the basic iframe setup.