🔒 Runs in your browser · tokens never uploaded

JWT Decoder & Inspector

Paste any JSON Web Token to decode the header and payload, see every claim, get a human-readable expiry status, and catch common security warnings. Fully client-side — your tokens stay on your device.

✔ 100% Free ✔ No signup ✔ Works offline ✔ Tokens never leave your browser
Waiting Paste a JWT above to begin.
Header (decoded)
// Header JSON will appear here
Payload (decoded)
// Payload JSON will appear here
Try an example:

What this tool does

Takes a JWT (three base64url-encoded segments joined by dots) and decodes the first two segments into readable JSON. Then it inspects the result for common security issues and time-based status — whether the token is expired, not yet valid, signed with alg: none, or missing a recommended claim. Everything runs in your browser; the token is never sent anywhere.

What it shows you

What it explicitly does NOT do

Common JWT claims (registered)

The JWT spec (RFC 7519) defines a small set of standard claim names. Most applications use them in addition to custom claims.

JWT algorithms in 2026

The algorithm header field tells the verifier which cryptographic algorithm was used to sign the token. The common choices:

What can go wrong with JWTs in production

JWTs are simple to use and easy to mis-use. A short list of the most common production mistakes, all of which a decoder helps you spot quickly:

For deeper background on JWT security, the OWASP JWT cheat sheet is the canonical reference.

Hiring or job-hunting for security/auth engineering?

Browse engineering roles across 100+ companies profiled with real culture data — including the ones building serious auth and security infrastructure.

Browse Engineering Jobs → Portfolio project ideas →

Frequently asked

Is this JWT decoder safe to use with real tokens?+
Yes. The decoder runs entirely in your browser using JavaScript. Tokens are never sent to any server, never logged, and never stored. The base64url decoding happens locally on your device. That said, JWTs are by design readable by anyone who has them — if a token is sensitive, the right answer is to rotate it after decoding, not to avoid decoding it.
Can this tool verify the JWT signature?+
No. This tool decodes the JWT but does not verify the signature, because verifying requires the secret key (HS256) or the public key (RS256, ES256, EdDSA) that signed it. Signature verification is a server-side operation that should happen in your auth middleware using the issuer's published JWKS endpoint or your own shared secret — not in a browser tool. Always verify signatures in production code, never trust a JWT solely because you can decode it.
What does it mean if my JWT shows "alg: none"?+
An algorithm of none means the JWT is unsigned — anyone can modify the payload and the token will still "work" if your verification code accepts unsigned tokens. This is a known vulnerability category. Any JWT verification library should reject alg=none by default in production. If you're inspecting a token with alg=none, treat it as untrusted.
Why is the signature shown but not decoded?+
The third part of a JWT is the cryptographic signature, which is a binary blob encoded with base64url. It is not meant to be decoded into human-readable text — it's a check value that the recipient uses to verify the token wasn't tampered with. The tool displays it so you can see it's present and what algorithm produced it, but the raw bytes aren't meaningful on their own.
What are common JWT claims?+
The most common registered claims are: iss (issuer), sub (subject — typically the user ID), aud (audience), exp (expiration timestamp), nbf (not-before timestamp), iat (issued-at timestamp), and jti (JWT ID). Beyond these, applications add custom claims like email, roles, scope, tenant_id, etc. The decoder displays all claims found in the payload.
How can I tell if my JWT is expired?+
The decoder automatically checks the exp claim against the current time and flags the token as EXPIRED or VALID. The exp claim is a Unix timestamp (seconds since 1970-01-01 UTC), and a token is considered expired when the current time exceeds exp. Some libraries allow a small clock-skew tolerance (usually 30 seconds). The decoder also checks nbf (not-before) to flag tokens that aren't yet valid.
What JWT algorithms does this tool support?+
The decoder displays any algorithm declared in the header, including HS256/HS384/HS512 (HMAC with SHA-2), RS256/RS384/RS512 (RSA), ES256/ES384/ES512 (ECDSA), PS256/PS384/PS512 (RSA-PSS), and EdDSA (Ed25519). Decoding the header and payload is the same regardless of algorithm — the algorithm only matters for signature verification, which this tool doesn't perform. For new tokens in 2026, ES256 and EdDSA are the recommended algorithms.