Um token tem a forma version.purpose.payload, com um .footer opcional, por exemplo v4.public.…. Cada versão fixa a sua criptografia: a v3 usa algoritmos do NIST (ECDSA P-384 para tokens públicos; AES-256-CTR com HMAC-SHA384 para os locais), e a v4 usa Ed25519 e XChaCha20 com BLAKE2b-MAC. A codificação de pré-autenticação (pre-authentication encoding, PAE) vincula o cabeçalho, o payload, o rodapé e as asserções implícitas opcionais (contexto autenticado, mas não transmitido, como o ID de um locatário) ao que é assinado ou autenticado com MAC.
Não há cabeçalho alg a explorar nem none; os prefixos de versão e de finalidade também impedem que uma chave local seja usada para tokens públicos. As chaves são serializadas com PASERK (k4.public…, k4.local…). Os payloads usam claims registradas no estilo do JWT (exp, iss, aud, em ISO 8601 ou como strings simples).
O PASETO não é um padrão da IETF (a especificação fica em github.com/paseto-standard/paseto-spec), e o suporte em bibliotecas, ferramentas e provedores de identidade é menor do que o do JWT. Um JWT verificado com um algoritmo fixado, conforme a RFC 8725, oferece quase toda a mesma segurança. O decodificador de PASETO analisa tokens localmente.