putty
API ReferenceArtifacts

The public showcase page

The entry's public page, as HTML. **No bearer token is required** — this is the link a creator pastes into a README, a bio, or a DM, and a page that asked a reader to log in would not be a page anyone shares. The page carries the "Molded with putty" badge (linked back to itself), the entry's own facts, and — when the entry names a chain and a token — links to the two proof surfaces putty already serves: the Receipts page and the Scan page carrying the Verify label. The page renders neither of them, because both are already served by the modules that own them and a second copy would be a second thing to keep true. The page is static HTML with no script and a `Content-Security-Policy` that forbids scripts outright. Every creator-supplied string on it — the title, the summary, the project URL, the token symbol — is HTML escaped, and every link is restricted to `https` (or loopback in dev), so neither a title nor a stored URL can smuggle a `javascript:` scheme or a tag into a page its creator will paste elsewhere. A draft, a withdrawn entry, and a missing slug are the same 404.

GET
/showcase/{slug}/page

The entry's public page, as HTML. No bearer token is required — this is the link a creator pastes into a README, a bio, or a DM, and a page that asked a reader to log in would not be a page anyone shares. The page carries the "Molded with putty" badge (linked back to itself), the entry's own facts, and — when the entry names a chain and a token — links to the two proof surfaces putty already serves: the Receipts page and the Scan page carrying the Verify label. The page renders neither of them, because both are already served by the modules that own them and a second copy would be a second thing to keep true. The page is static HTML with no script and a Content-Security-Policy that forbids scripts outright. Every creator-supplied string on it — the title, the summary, the project URL, the token symbol — is HTML escaped, and every link is restricted to https (or loopback in dev), so neither a title nor a stored URL can smuggle a javascript: scheme or a tag into a page its creator will paste elsewhere. A draft, a withdrawn entry, and a missing slug are the same 404.

Path Parameters

slug*string
Match^[a-z0-9][a-z0-9-]*[a-z0-9]$
Length1 <= length <= 64

Response Body

text/html

application/json

application/json

application/json

curl -X GET "https://example.com/showcase/string/page"
"string"