api.stack-auth.com and api.hexclave.com) point at the same service, so each @stackframe/* package continues to work; staying on the legacy SDK requires no action.
This guide is for projects that want to migrate to @hexclave/* packages.
1. Install the new packages
Replace each@stackframe/* dependency with its @hexclave/* equivalent:
Rename your imports from
@stackframe/* to @hexclave/*. The public API surface is identical, except that all Stack* references are renamed to Hexclave*:
Before
After
2. Update hardcoded references
Sweep your codebase and replace:https://api.stack-auth.com→https://api.hexclave.com
Optional changes
All legacy names keep working — rename only if you want your code to match the new brand.- Request headers:
X-Stack-*→X-Hexclave-*. - Environment variables:
STACK_*→HEXCLAVE_*. - Bearer prefix:
stackauth_*tokens remain valid. - CLI binary:
hexclaveships with@hexclave/cli. The oldstackbinary is no longer published. - Hosted-handler subdomain: current SDKs use
.built-with-hexclave.com. The legacy.built-with-stack-auth.comdomain remains available for SDK versions that already generated those URLs. Passkeys are scoped to the domain where they were registered and are not transferred between the two domains.
Other
If your backend verifies Hexclave-issued JWTs directly (for example withjose.jwtVerify), update the expected iss claim — @hexclave/* SDKs sign tokens under the hexclave host:
Before
After
/api/v1/projects-anonymous-users/...) and restricted (/api/v1/projects-restricted-users/...) issuer variants.
You don’t need to update your OAuth provider callback URLs — your current api.stack-auth.com callback URLs keep working. However, if you recreate an OAuth provider on the dashboard, you’ll need to use the new callback URL: