Ship Authentication & Embedded Wallets in Minutes

Complete authentication and self-custodial wallet infrastructure. Spin up embedded wallets, sign transactions, and authenticate users across every chain—through one powerful SDK.

Production-ready in under 15 minutes

Multi-chain support
Self-custodial wallets
Production-ready

Self-Custodial by Design

Distributed key sharding ensures users maintain full control of their assets. Keys are never stored in a single location.

Developer-First SDK

From React hooks to REST APIs, MoonKey adapts to your stack. Pre-built components or full customization—you choose.

Built for Production

One platform for authentication, wallets, and transactions. Scale from prototype to millions of users on battle-tested infrastructure.

import { useState } from 'react';
import { useLoginWithEmail } from '@moon-key/react-auth';

export default function EmailLogin() {
  const [email, setEmail] = useState('');
  const [otp, setOtp] = useState('');
  const [codeSent, setCodeSent] = useState(false);
  const { sendCode, loginWithCode, state } = useLoginWithEmail();

  if (!codeSent) {
    return (
      <div>
        <input
          type="email"
          placeholder="Enter your email"
          value={email}
          onChange={(e) => setEmail(e.target.value)}
        />
        <button 
          onClick={() => sendCode({ email }).then(() => setCodeSent(true))}
          disabled={!email || state === 'sending'}
        >
          Send Code
        </button>
      </div>
    );
  }

  return (
    <div>
      <input
        type="text"
        placeholder="Enter 6-digit code"
        value={otp}
        onChange={(e) => setOtp(e.target.value)}
        maxLength={6}
      />
      <button 
        onClick={() => loginWithCode({ code: otp })}
        disabled={otp.length !== 6}
      >
        Verify & Login
      </button>
    </div>
  );
}

Features

OTP Authentication

Passwordless authentication with one-time passcodes for secure and seamless user experiences.

Learn more →

OAuth & Social Logins

Support for Google, Microsoft, Apple, GitHub, Discord, LinkedIn, Twitter, and more.

Learn more →

Web3 Login

Native support for Ethereum and Solana wallet connections with Web3 authentication.

Learn more →

Wallet as a Service

Embedded wallets for users without managing private keys. Support for both user and platform wallets.

Learn more →

Device & Biometrics

WebAuthn and TOTP support for secure, device-based authentication with biometric capabilities.

Learn more →

Enterprise Ready

On-premise deployment, fraud detection, device fingerprinting, and session management.

Learn more →

Security & Custody

Enterprise Security

Security & Custody

Built with security as the foundation. Distributed key management ensures users maintain full custody while eliminating single points of failure.

Distributed Key Sharding

Private keys are split into multiple shards distributed across secure locations. The complete key is only reconstituted in a secure environment when needed for signing.

  • No single point of failure
  • Keys never stored in one place
  • Resistant to common attacks

User Control

Users have complete control over their wallets. Self-custodial by design, with the freedom to export keys and move assets at any time.

  • Full ownership of assets
  • Export keys anytime
  • No platform lock-in

Secure Operations

All wallet operations follow security best practices with encrypted storage, secure transaction signing, and clear user confirmation flows.

  • Encrypted key storage
  • Secure signing environment
  • Clear operation approvals
Start building in minutes

Start building today

Join thousands of developers building secure, self-custodial wallet experiences.

Self-custodial
Production-ready SDK
Deploy in 15 minutes