Loading developer tools…
Loading developer tools…
Decode JWT tokens to see header, payload, and expiry status. Colour-coded, client-side, instant.
When you're debugging authentication, you rarely have easy access to the code that issued a token — you just have the token string itself, and you need to know what's inside it: which user it belongs to, when it expires, which claims the backend attached. This tool base64url-decodes a JWT's header and payload and displays them as readable, colour-coded JSON, right in your browser. It does not and cannot verify the token's signature — that requires the issuing secret or public key, which this tool never asks for or receives. Think of it as a way to read what a token says, not to confirm it's genuine.
Header
{
"alg": "HS256",
"typ": "JWT"
}Payload
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}Issued At
1/18/2018, 1:30:22 AM
Status
No expiry claim
Signature not verified. This tool decodes the token client-side for inspection only. Signature verification requires the secret key and must be done server-side.
Format, validate, and minify JSON with syntax highlighting and error detection
Encode text or files to Base64 and decode Base64 strings back to plain text
Convert Unix timestamps to human-readable dates and vice versa, in any timezone
Test and debug regular expressions with live match highlighting and group capture
Paste your JWT
Paste a JWT token (three base64url parts separated by dots) into the input field.
Inspect the colour-coded token
The header is highlighted pink, the payload amber, and the signature cyan.
Review header and payload
The decoded header (algorithm, type) and payload (claims, sub, iat, exp) are displayed as formatted JSON.
Check expiry status
If the token has an exp claim, the tool shows the expiry date and whether it has expired.
Copy decoded sections
Click the copy button on any section to copy the JSON to your clipboard.
A JSON Web Token is three parts joined by dots: header.payload.signature. The header and payload are each JSON objects that have been Base64url-encoded — the same encoding family behind the Base64 tool, just with a URL-safe alphabet. Because Base64url is fully reversible without any secret, decoding the header and payload is a matter of splitting the token on its dots and running each of the first two segments through a standard decode function. That's exactly what this tool does: it takes the token you paste, decodes the first two segments, and renders the resulting JSON in a readable, colour-coded layout.
The third segment, the signature, is fundamentally different. It's not JSON and it's not meant to be decoded into something human-readable — it's a cryptographic value computed over the header and payload using an algorithm named in the header (commonly HS256, RS256, or ES256) and a secret or private key that only the issuing server holds. Verifying that signature means recomputing it with the correct key and checking it matches what's in the token. A decoder that only has the token — no key — has no way to perform that computation. This tool never asks for a secret or key because it isn't designed to verify anything; it only decodes and displays.
That distinction matters because a token that decodes cleanly here is not the same as a token that has been confirmed authentic. Anyone can construct a syntactically valid JWT with any payload they like — decoding it will succeed and produce readable JSON regardless of whether the signature is legitimate, forged, or entirely absent. In other words, decoding tells you what a token claims; only signature verification (performed with the correct key, typically server-side using a JWT library) tells you whether those claims can be trusted.
Despite that limitation, decoding alone is genuinely useful during development and debugging. If a login flow is misbehaving, or an API is rejecting requests with a token you believe should be valid, the fastest first step is usually to decode the token and look at its claims: is the exp timestamp in the past, is the aud or iss claim what the receiving service expects, does the submatch the user you think it should. Those checks don't require cryptography — they just require reading the JSON — and this tool makes that step instant instead of requiring you to manually split and decode Base64url segments by hand.
Unlike most online tools, Toolivon processes everything directly in your browser using the Web APIs built into Chrome, Firefox, Safari, and Edge.
Last updated:
Your data never leave your device
All processing runs directly in your browser using built-in Web APIs — the Canvas API, Web Audio API, and WebAssembly. Nothing is uploaded to any server. There is no account, no email, and no data retention. You can verify this yourself: open your browser's DevTools Network tab and watch zero outbound file requests while the tool processes your data.
GDPR-friendly · Works offline after page load · No file size limits beyond your device memory