Skip to content

Kryard vs Turnkey

TL;DR — Kryard is a Turnkey-wire-compatible signer plus a managed EIP-7702 relay. You migrate the signing side with a single TURNKEY_BASE_URL swap (zero client changes), and you gain gasless, sponsored transactions where users can pay gas in any ERC-20 token — something Turnkey's signer doesn't bundle. Kryard's SDK, signer, and CLI are open source. The trade-off: Kryard is newer (live on testnets), where Turnkey is a mature, production platform with broader auth (passkeys, OAuth, OTP) and sub-organizations.

At a glance

KryardTurnkey
EVM secp256k1 signing✅ Wire-identical API (paths, activity envelope, X-Stamp auth)✅ The original API
Migration effortOne env-var swap (TURNKEY_BASE_URL), no client changes
Key custodyKMS envelope encryption; the API never decrypts; keys never leave an isolated signerHSM/secure-enclave key management
Managed EIP-7702 relay (sponsored, gasless, batched execution)✅ Built in — no 4337 bundler❌ Not a relay/paymaster
Pay gas in any ERC-20✅ On-chain KryardDelegate reimburses an exact, user-signed fee
Auth methodsAPI key (X-Stamp) + device/session JWT; passkeys/OAuth/OTP on the roadmapPasskeys, OAuth, OTP, email — mature
Sub-organizationsOrganizations + projectsMature sub-org model
SDK / signer / CLIOpen source (@kryard/sdk, MIT X-Stamp signer, kryard CLI)Proprietary SDK
MaturityLive on testnets (Sepolia + Base/Arbitrum/Optimism/Polygon/BSC testnets)Production, mainnet, broad adoption

When Kryard is the better fit

  • You want gasless UX, not just signing. Kryard is a signer and a managed relay: a user signs a 7702 authorization + a batch digest, and Kryard signs, fronts gas, and broadcasts the type-4 transaction. Smart-wallet UX with no ERC-4337 bundler to run. See Gasless transactions, explained.
  • You want users to pay gas in a token they already hold (USDC, your app token). Kryard settles gas in any ERC-20 via an exact, user-signed fee that can't be inflated. See Pay gas in any token.
  • You're already on Turnkey and want the relay without a rewrite. Keep your Turnkey client; swap the base URL for the signing calls and add the relay SDK for sponsorship. See Turnkey compatibility.
  • You value open, self-hostable infrastructure. The SDK, the X-Stamp signer, the reference 7702 delegate, and the CLI are open source.

When Turnkey is the better fit today

  • You need production/mainnet guarantees and a track record right now. Kryard is proven end-to-end on testnets; mainnet is gated behind a hardening milestone.
  • You need rich end-user auth out of the box (passkeys, OAuth, OTP, email) — that is Kryard's roadmap, not its current surface for the public tier.
  • You rely on Turnkey's mature sub-organization model at scale.

We keep this page honest: match the wire, don't overclaim status. If a row here is out of date, it's a bug — the source of truth is the docs and the public repos.

Migrate the signing side in one line

diff
- TURNKEY_BASE_URL=https://api.turnkey.com
+ TURNKEY_BASE_URL=https://api.kryard.com

No client code changes: the public API is Turnkey-shaped (same endpoint paths, the nested activity.result.<type>Result envelope, X-Stamp auth). Full details: Turnkey compatibility.

Add gasless transactions

ts
import { KryardRelayClient, createApiKeyStamper } from "@kryard/sdk";

const client = new KryardRelayClient({
  baseUrl: "https://api.kryard.com",
  organizationId: process.env.KRYARD_ORG!,
  stamper: createApiKeyStamper({
    apiPublicKey: process.env.KRYARD_API_PUBLIC_KEY!,
    apiPrivateKey: process.env.KRYARD_API_PRIVATE_KEY!,
  }),
});
// The user signs a 7702 authorization + batch digest; Kryard fronts gas and
// broadcasts the type-4 transaction.

Start with the Quickstart, or read 7702 vs 4337 to see why Kryard needs no bundler.

Wallet infrastructure for gasless, sponsored transactions — a Turnkey-compatible signer and a managed EIP-7702 relay.