How this JWT decoder works
A JSON Web Token is three Base64URL-encoded segments joined by dots: header.payload.signature. The header and payload are plain JSON that anyone can decode — encoding is not encryption. This tool splits the token, decodes both JSON parts with local JavaScript, pretty-prints them, converts every timestamp claim (exp, iat, nbf) to your local time, and runs a live countdown to expiry. It also flags common problems: expired tokens, the dangerous "alg": "none", missing expiry, and tokens that aren't valid three-part JWS structures.
Everything runs on your device — there is no server, no logging, no network request. That matters because real tokens grant real access; pasting one into a website that uploads it is a security risk. For the same reason, this tool decodes and inspects but does not verify signatures — verification needs the issuer's secret or private key and belongs on the server that trusts the token.
Working with the payload JSON afterwards? Format it in our JSON Formatter & Validator, or decode other Base64 data with the Base64 Encoder/Decoder.