SOCIAL LOGIN FOR NEAR · LIVE ON MAINNET · 10M+ ACCOUNTS

Sign in with Google or Apple. Land on a real NEAR wallet.

NEAR Auth is the Web3 onboarding layer for NEAR dApps — Google, Apple, email, and passkey sign-in backed by a real NEAR account, non-custodial via MPC. No seed phrases, no extensions, no wallet popups. One Auth0-backed identity, shared across every dApp in the NEAR ecosystem that integrates NEAR Auth.

Google · Apple · Email · Passkey · SSO Non-custodial NEAR wallet via MPC Audited by Halborn · view report
Security · AuditNEAR Auth smart contracts audited by Halborn.
Read the security report

01 What is NEAR Auth

A wallet that doesn't feel like one.

NEAR Auth is an account-abstraction layer for NEAR, powered by Auth0. Users sign in with the credentials they already have, and the same identity resolves to the same NEAR account in every dApp that integrates NEAR Auth.

01 · ONBOARDING

Google, Apple, email, or passkey.

Four sign-in methods, all routed through Auth0: Google and Apple first, plus email/password and passkeys. We provision a real NEAR account in the background — no seed phrase, no extension, no wallet popup. Whatever the user already trusts, that's how they sign in.

user@email.comN.near
02 · SHARED IDENTITY

One account. Every NEAR Auth dApp.

The user's MPC-controlled NEAR account is derived deterministically from their Auth0 identity. Sign into one NEAR Auth-integrated dApp, sign into the next with the same login — same account, same balance, no re-onboarding.

DEVKEYNET
03 · UX

Gasless. Silent. On-chain.

Your dApp pays gas through the NEAR Auth relayer. Users authenticate with whichever Auth0 method they chose, and the action lands on NEAR mainnet wrapped as a NEP-366 meta-transaction.

SIGNRELAYER

02 How it works

Three steps. No seed phrases. Any login.

What the user sees, and what's happening on chain. From login to confirmed transaction — without the user ever holding a key.

STEP 01 Authenticate

User signs in. Auth0 issues a JWT.

The user logs in with email/password, a passkey, Google, or Apple. Auth0 returns a JWT whose sub claim uniquely identifies them. Every transaction reuses this login — a fresh JWT is issued for each one, with the action embedded in the payload.

→ POST /authorize200 · jwt issued · sub=google-oauth2|…
STEP 02 Derive & sign

The MPC network derives the user's key from their JWT.

The NEAR Auth contract routes the JWT to the matching guard (Auth0, Firebase, custom issuer) for cryptographic verification. On success it builds a deterministic path — {guard_id}#{sub} — and asks NEAR's MPC network to sign for it. The nodes derive the same key for the same identity every time, and produce the signature collaboratively. No single party ever holds the full key — and the user holds no key material at all.

guard.verify(jwt) path jwt#auth0#… → v1.signersigned · eddsa
STEP 03 Transact

Gasless meta-transactions land on chain.

The MPC signature wraps the user's action as a NEP-366 DelegateAction. Your dApp's relayer pays gas, the action is bound to the JWT's payload (so it can't be re-used), and the call lands on NEAR mainnet through the relayer.

delegate action → relayerincluded · block 210,481,902

03 For developers

Drop it in.
Ship today.

React SDK or vanilla JS — pick your stack. The Auth0-backed JavaScript provider handles login; the NEAR Auth relayer pays gas. You write the dApp.

  • Drop in FastAuthProvider.Wrap your app once. useFastAuth exposes the client for login / logout; useSigner exposes the signer for transactions and gas-free delegate actions.
  • Four sign-in methods. One identity.Email, Google, Apple, or passkey — routed through Auth0. The same login resolves to the same NEAR account in every dApp on NEAR Auth.
  • Browser, React, JS, React Native.Pick the SDK or provider that matches your stack. Same client, same account model, same signature flow.
  • Open source. Extend the auth side.SDKs and contracts on GitHub. Run your own JWT guard or custom issuer service if Auth0 isn't enough — the NEAR Auth contract, router, and MPC network are shared mainnet infrastructure.
App.tsx
import { FastAuthProvider } from "@fast-auth-near/react-sdk";
import { JavascriptProvider } from "@fast-auth-near/javascript-provider";
import { Connection } from "near-api-js";

// Start on testnet (no approval needed). Switch to "mainnet" once your
// app has been whitelisted and approved Auth0 credentials issued.
const connection = new Connection({
  networkId: "testnet",
  provider: { type: "JsonRpcProvider", args: { url: "https://rpc.testnet.near.org" } },
});

export default function App() {
  const providerConfig = {
    // Auth0 tenant — Google · Apple · Email/password · Passkey live here.
    provider: new JavascriptProvider({
      domain:   "your-tenant.auth0.com",
      clientId: "YOUR_AUTH0_CLIENT_ID",
      audience: "https://your-api.example.com",
    }),
  };

  return (
    <FastAuthProvider
      providerConfig={providerConfig}
      connection={connection}
      network="testnet"
    >
      <Wallet />
    </FastAuthProvider>
  );
}

04 Live network

Numbers, not promises.

Updated

Total accounts

10,963,260

↑ 0 today

Active (30d)

307,505

12,716 active in 7d

Sign events (30d)

390,591

across 6 relayers

NEAR Auth uptime

last 24h
View full status dashboard

05 FAQ

Questions, answered honestly.

If you don't see what you're looking for, the docs go deeper. Or open an issue — we read all of them.

Which sign-in methods does NEAR Auth support?

Google, Apple, email/password, and passkeys — all routed through Auth0. Because each user's NEAR account is derived deterministically from their Auth0 `sub` claim, the same login resolves to the same account in every NEAR Auth dApp. For providers Auth0 doesn't cover, you can deploy a custom guard contract or run a custom issuer service that issues JWTs verified on chain.

How does NEAR Auth compare to Privy, Reown, or Web3Auth?

NEAR Auth is NEAR-native and non-custodial via MPC. Where embedded-wallet products like Privy, Reown (formerly WalletConnect), or Web3Auth rely on proprietary infrastructure (key shards held by the provider, MPC services bound to their stack, or session-key wallets), NEAR Auth derives a real NEAR named account directly inside NEAR's MPC network from the user's Auth0-verified identity — no single party ever reconstructs the full key. Transactions are dispatched as NEP-366 meta-transactions through an open relayer your dApp configures, and the JWT guard model lets you bring your own issuer if Auth0 doesn't fit. The result: same Google/Apple/email login UX, but on NEAR rails you can audit end-to-end.

What chain does NEAR Auth run on?

NEAR Protocol mainnet. NEAR Auth is built and operated by Peersyst as a public-good account-abstraction layer for the NEAR ecosystem. Accounts are real NEAR named accounts you can inspect on nearblocks.io.

How do users sign in?

Through Auth0 — Google, Apple, email/password, or passkey. The user's MPC-controlled NEAR account is derived deterministically from their Auth0 identity, so the same login always resolves to the same account no matter which NEAR Auth dApp they sign into.

What does Auth0 have to do with it?

Auth0 is the identity layer. Each NEAR Auth-integrated dApp gets its own approved Auth0 credentials (domain, clientId, audience), but the user's `sub` claim deterministically derives the same MPC-controlled NEAR account across every dApp that uses the Auth0 guard — so the same login reaches the same wallet.

Where is the user's key stored?

User signs in. Auth0 issues a JWT. The MPC network derives the user's key from their JWT. The NEAR Auth contract routes the JWT to the matching guard (Auth0, Firebase, custom issuer) for cryptographic verification. On success it builds a deterministic path — {guard_id}#{sub} — and asks NEAR's MPC network to sign for it. The nodes derive the same key for the same identity every time, and produce the signature collaboratively. No single party ever holds the full key — and the user holds no key material at all.

Is this custodial?

No single party holds the user's signing key. The key is derived inside NEAR's MPC network from the user's Auth0-verified identity each time a signature is needed — no node ever reconstructs the full key. The gating credential is the user's Auth0 login: every transaction requires a fresh, verified JWT, and NEAR Auth cannot sign without it.

How is gas paid?

Through the NEAR Auth relayer. When your dApp calls signAndSendDelegateAction, the relayer wraps the user's signed delegate action as a NEP-366 meta-transaction, pays gas on chain, and returns the result — the user pays nothing. The relayer URL is configured per-network in the SDK. For a regular (non-delegate) transaction, the user's account pays gas directly.

How do I go live on mainnet?

Build on testnet first — no approval required, free credentials. When you're ready for production, submit your application (name, description, expected volume, use case, contact) to the NEAR Auth team. Once approved, you receive production Auth0 credentials (domain, clientId, audience) and access to the mainnet NEAR Auth contracts. Mainnet usage is whitelisted to keep the shared infrastructure healthy.

Can I self-host?

Partially. The NEAR Auth contract, the JWT Guard Router, and NEAR's MPC network are shared infrastructure deployed on mainnet (fast-auth.near, jwt.fast-auth.near, v1.signer) — you integrate with them, you don't redeploy them. You can self-host the auth side: deploy your own guard contract that implements the JwtGuard trait, or run an off-chain issuer whose JWTs are verified by CustomIssuerGuard. Both extension points are documented.

Has NEAR Auth been audited?

Yes. The NEAR Auth smart contracts and signing infrastructure have been audited by Halborn, an independent security firm specializing in Web3. The full security report is publicly available.

Ship the wallet your users
won't realize they're using.

Build on testnet today — no approval needed. When you're ready for production, submit your application to get whitelisted Auth0 credentials and mainnet access.