# Backend wallets

Backend wallets are **developer-controlled, custodial wallets** that live in your server environment. Openfort generates and encrypts the private keys; your backend authorizes every signature with your own credentials, so wallets can act without a user online to approve each step.

They work in two modes:

| Mode | What it is | Use it for |
| :--- | :--- | :--- |
| **Standalone server wallets** | Wallets your backend creates and fully controls end to end. | Treasury, agents, per-user custodial wallets, automated payouts. |
| **Session-key execution** | Your backend signs for a user's [embedded wallet](/docs/products/embedded-wallet) within a scope the user granted. | Acting on behalf of a signed-in user — recurring actions, automation, agents that trade for a user. |

The same Node SDK covers both: a standalone wallet is created with `accounts.evm.backend.create()`; session-key execution reuses a scoped [session key](/docs/products/embedded-wallet/react/wallet/actions/session-keys) the user's embedded wallet granted, so the server stays inside limits the user set.

## Backend vs. embedded wallets

| | Backend wallets | Embedded wallets |
| :--- | :--- | :--- |
| **Who controls the key** | Your server (custodial) | The user (non-custodial) |
| **Who authorizes signing** | Your backend credentials | The user, per action |
| **Runs without a user online** | Yes | No (unless a session key was granted) |
| **Primary use** | Automation, agents, treasury, payouts | User-facing transactions |

Most production apps use both — embedded wallets for what the user signs, backend wallets for what the server does on its own or on the user's behalf.

## Workflows

Concrete, end-to-end patterns built on backend wallets.

<HoverCardLayout>
  <HoverCardLink title="Server-side user wallets" description="Provision and manage one custodial wallet per user, entirely from your backend — no client wallet required." href="/products/server/workflows/server-side-user-wallets" icon={Users} />

  <HoverCardLink title="Agentic wallets" description="Give an AI agent its own wallet, bounded by signing policies so it can only do what you allow." href="/products/server/workflows/agentic-wallets" icon={Bot} />

  <HoverCardLink title="User + server signers" description="Let a user grant a scoped session key from their embedded wallet, then execute for them from the server." href="/products/server/workflows/user-and-server-signers" icon={KeyRound} />
</HoverCardLayout>

## Why use backend wallets?

<HoverCardLayout>
  <HoverCardLink title="Seamless automation" description="Perform on-chain actions instantly based on server-side triggers, without waiting for a user to be online or approve." href="/products/server/accounts" icon={Zap} />

  <HoverCardLink title="Enterprise-grade security" description="Isolate administrative keys within your secure infrastructure. Leverage Openfort's TEE-based signing for maximum protection." href="/products/server/security" icon={ShieldCheck} />

  <HoverCardLink title="Signing policies" description="Control which signing operations your wallets can perform with rule-based authorization policies." href="/configuration/policies" icon={ShieldCheck} />

  <HoverCardLink title="High throughput" description="Manage multiple nonces and sign hundreds of transactions in parallel to scale with your user base." href="/products/server/accounts" icon={Repeat} />

  <HoverCardLink title="Abstracted complexity" description="Remove crypto friction. Users interact with your app while your backend handles blockchain orchestration." href="/products/server/setup" icon={Server} />
</HoverCardLayout>

## Backend SDKs and API

Start building with our server-side libraries, optimized for performance and secure credential management.

<HoverCardLayout>
  <HoverCardLink
    title="Node.js SDK"
    subtitle="TypeScript / JavaScript"
    description="The primary SDK for backend integration. Features robust typing and built-in support for wallet orchestration."
    href="https://github.com/openfort-xyz/openfort-node"
    img={{
    src: "/img/icons/libraries/node.svg",
    alt: "Node.js Icon",
  }}
    color="#339933"
  />

  <HoverCardLink title="Node SDK examples" subtitle="Runnable code samples" description="Comprehensive examples for EVM/Solana accounts, signing, policies, gas sponsorship, IAM, and webhooks." href="https://github.com/openfort-xyz/openfort-node/tree/main/examples" icon={Zap} />
</HoverCardLayout>
