Decode JWT tokens and inspect header, payload claims, and expiry status — entirely in your browser with no server involved.
JWTs (JSON Web Tokens) are composed of three base64url-encoded parts separated by dots:
<header>.<payload>.<signature>This tool decodes the header and payload as JSON and displays them in separate panels. The signature is shown as-is (raw base64url string) since verifying it requires a secret or public key, which this tool does not support.
Paste any JWT into the input panel. The tool immediately splits the token and decodes each part:
{ "alg": "HS256", "typ": "JWT" })sub, iat, exp, and any custom fieldsIf the token is malformed (not three dot-separated base64url segments, or non-JSON header/payload), a malformed badge appears and no output is shown.
The payload panel shows a status badge based on the exp claim:
| Badge | Meaning |
|---|---|
valid | exp is in the future |
expired | exp is in the past |
no exp | No exp claim present |
The check uses Date.now() in your local browser — no server clock is involved.
Click Generate in the token input header to create a structurally valid JWT on the spot. Each generated token has:
{ "alg": "HS256", "typ": "JWT" }sub (UUID), name, role, iat (now), and exp (1 hour from now)This is useful for quickly seeing how the decoder works without needing a real token.
Every token you paste is reflected into the URL as ?v=<token>. You can share or bookmark these URLs to reopen the decoder with the same token pre-filled.
Authorization, caching, CORS, and security fields