diff --git a/docs/pages/introduction.mdx b/docs/pages/introduction.mdx new file mode 100644 index 0000000..f66b354 --- /dev/null +++ b/docs/pages/introduction.mdx @@ -0,0 +1,60 @@ +# What is ZeroDev? + +ZeroDev is a programmable wallet infrastructure for teams building on EVM chains. It provides two things that work together: +- A managed infrastructure layer — bundlers, paymasters, and the Kernel smart account contract +- A set of SDKs that let you build ERC-4337 smart account features into your product without standing up or maintaining that infrastructure yourself. + +If your team is deciding whether to build smart account capabilities in-house or adopt a production-ready solution, this page will help you understand what ZeroDev covers, and where to start. + +--- + +## The integration problem + +ERC-4337 defines the protocol. It does not give you the stack. + +To ship a feature as simple as sponsored gas, you need a smart account contract, a paymaster, a bundler, a policy engine to control spending, and an SDK to connect it all to your frontend. Each of those pieces can be built independently — and teams do build them — but the integration work adds up fast. Bugs surface at the seams between components. Bundler reliability directly affects user-facing transaction success rates. Paymaster policy logic gets coupled into your backend and becomes a maintenance burden. + +ZeroDev assembles this stack and operates it as a service. Kernel is the smart account contract: modular, audited, and one of the most deployed account implementations on Ethereum. The bundler and paymaster infrastructure runs across all major EVM chains. Gas policies are configured through a dashboard, not deployed as custom contracts. The SDKs handle the glue between your frontend and the protocol, at the level of abstraction that fits your architecture. + +--- + +## build or buy? + +Building ERC-4337 infrastructure in-house is possible. It requires engineers who understand the EntryPoint contract, UserOperation lifecycle, paymaster validation rules, and bundler behavior under load — a specialized intersection of protocol knowledge and infrastructure engineering. Once built, it requires ongoing maintenance as the standard evolves and as you add chains. + +ZeroDev is the buy answer for teams that want smart account capabilities without a dedicated protocol engineering function. The Kernel contract is open source and extensively audited. The infrastructure is shared across production deployments, which means reliability is a product priority, not a per-customer concern. Enterprise SLAs and support contracts are available for teams that need them. + +For early-stage companies, adopting ZeroDev means shipping smart wallet features in days instead of months. For larger teams, it means redirecting protocol engineering capacity toward differentiated product work. + +--- + +## How will ZeroDev improve my product? + +ZeroDev enables four user-facing improvements that have the highest impact on conversion and retention: + +**No gas friction.** Sponsor transactions for your users so they never need to hold ETH. This eliminates the single biggest drop-off point for new users arriving from non-crypto contexts. You configure spending limits and eligibility rules through a dashboard; no contract changes required. + +**Familiar authentication.** Let users create wallets with passkeys (Face ID / Touch ID) or social login (Google, email, and others). No seed phrases, no browser extensions. Users get self-custodial accounts through flows that feel like standard web authentication. + +**One-click flows.** Batch multiple on-chain operations into a single user confirmation. Approve-and-swap, mint-and-list, stake-and-delegate — interactions that currently require two or more transactions become one. This has a direct effect on completion rates for any multi-step flow. + +**Persistent sessions.** Issue scoped, time-bounded permissions (session keys) so repeat users don't confirm every action. The user approves a session once; subsequent actions execute silently within the authorized scope. + +Each of these maps to a ZeroDev feature with documented integration time. None of them requires changes to your existing contract architecture. + +--- + +## SDKs + +ZeroDev provides three SDKs, each calibrated to a different integration depth: + +- **`@zerodev/wallet`** — Wagmi connectors and EIP-1193 providers. If your frontend already uses Wagmi, this is the lowest-friction integration path. Drop in a connector, configure gas sponsorship through the dashboard, and you have smart wallet features without touching your account logic. This is the right starting point for DApp teams adding smart wallet support. + +- **`@zerodev/core`** — The full-featured SDK for teams building embedded wallets or needing fine-grained control over account creation, session management, and signing. Supports all major auth providers (Privy, Magic, Dynamic, Web3Auth, Fireblocks, Capsule, and others) as plug-in signers. + +- **`@zerodev/waas`** — A React SDK built on `@zerodev/core`, providing hooks for wallet state, transaction management, session handling, and chain switching. For React-native wallet products, this is the fastest path to full feature coverage. + +Infrastructure concerns — bundler uptime, paymaster balance management, chain support — are handled by ZeroDev. Your team owns the integration; ZeroDev owns the ops. + +For teams evaluating integration scope before committing: each SDK has a working quickstart that covers the full round-trip (account creation, sponsored transaction, session key issuance) in under 50 lines of code. + diff --git a/package-lock.json b/package-lock.json index 514b74c..5d1f588 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,6 +45,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -2510,6 +2511,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz", "integrity": "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -2650,6 +2652,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2848,6 +2851,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", @@ -4096,6 +4100,7 @@ "resolved": "https://registry.npmjs.org/hono/-/hono-4.10.3.tgz", "integrity": "sha512-2LOYWUbnhdxdL8MNbNg9XZig6k+cZXm5IjHn2Aviv7honhBMOHb+jxrKIeJRZJRmn+htUCKhaicxwXuUDlchRA==", "license": "MIT", + "peer": true, "engines": { "node": ">=16.9.0" } @@ -6198,6 +6203,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -6273,6 +6279,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -6282,6 +6289,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -6740,6 +6748,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -7222,6 +7231,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7528,6 +7538,7 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", diff --git a/vocs.config.tsx b/vocs.config.tsx index fa7ff51..9e1381b 100644 --- a/vocs.config.tsx +++ b/vocs.config.tsx @@ -90,7 +90,7 @@ export default defineConfig({ items: [ { text: "Introduction", - link: "/", + link: "/introduction", }, { text: "Quickstart",