What changed
On August 18, 2026, Vercel launched KMS in public beta for signing JWTs and arbitrary messages from Vercel Functions. Functions authenticate to the service with their Vercel OIDC token; private asymmetric keys remain inside Vercel KMS. Teams can create and rotate RSA, ECDSA and EdDSA signing keys, grant projects access per environment, constrain allowed JWT claims and expose standards-based OIDC discovery and JWKS endpoints for verification.
Why it matters
Many web apps still place long-lived signing keys in environment variables or application secret stores, which means a code-execution bug, misconfigured deployment or leaked environment snapshot can expose credentials capable of minting trusted tokens. A remote signing service changes that threat model: the workload receives permission to request signatures rather than possession of the private key itself. Per-environment grants and claim constraints also make it possible to reduce what a compromised deployment can sign.
The private key no longer lives with the Function
A Vercel Function uses its workload OIDC token to authenticate to KMS and requests a signature through the `@vercel/kms` package. Vercel says the private key never leaves KMS. The service supports JWT signing with configurable TTL and custom claims as well as signing arbitrary bytes.
Grants can limit where and what a project signs
KMS grants can be scoped by project environment, including production, preview, development and custom environments. Vercel also lets teams constrain which claims a project may request and validate token claims against JSON Schema. That creates a narrower authorization boundary than simply placing a reusable signing key in every environment that needs to mint tokens.
Verification remains portable
Each issuer exposes an OpenID Connect discovery document and JWKS endpoint under `kms.vercel.com`, so downstream services can verify tokens with standard OIDC or JOSE libraries rather than Vercel-specific verification code. This is important for architectures where Vercel issues credentials consumed by APIs running elsewhere.