Développer avec Base Account
Base Account est un smart wallet ERC-4337 offrant une authentification universelle, des paiements USDC en un tap, et le support multi-chaînes (Base, Arbitrum, Optimism, Zora, Polygon, BNB, Avalanche, Lordchain, Ethereum Mainnet).
Démarrage rapide
npm install @base-org/account @base-org/account-ui
import { createBaseAccountSDK } from '@base-org/account';
const sdk = createBaseAccountSDK({
appName: 'My App',
appLogoUrl: 'https://example.com/logo.png',
appChainIds: [8453], // Base Mainnet
});
const provider = sdk.getProvider();
Références des fonctionnalités
Consultez la référence de la fonctionnalité que vous implémentez :
| Fonctionnalité | Référence | Quand consulter |
|---|---|---|
| Sign in with Base | references/authentication.md | Auth wallet, SIWE, vérification backend, SignInWithBaseButton, setup Wagmi/Privy |
| Base Pay | references/payments.md | Paiements USDC en un tap, payerInfo, vérification côté serveur, BasePayButton |
| Subscriptions | references/subscriptions.md | Charges récurrentes, permissions de dépense, setup wallet CDP, cycle charge/révocation |
| Sub Accounts | references/sub-accounts.md | Portefeuilles embarqués spécifiques à l'app, génération de clés, financement |
| Capabilities | references/capabilities.md | Transactions par lot, parrainage de gaz (paymasters), exécution atomique, auxiliaryFunds, attribution |
| Prolinks | references/prolinks.md | Liens de paiement partageables, codes QR, URLs de transaction encodées |
| Troubleshooting | references/troubleshooting.md | Problèmes de popup, utilisation de gaz, appels non supportés, migration, liens de doc |
Exigences critiques
Sécurité
- Suivre les IDs de transaction pour prévenir les attaques par rejeu
- Vérifier que l'expéditeur correspond à l'utilisateur authentifié pour prévenir l'usurpation d'identité
- Utiliser un proxy pour protéger les URLs Paymaster de l'exposition frontend
- Les fournisseurs Paymaster doivent être conformes à ERC-7677
- Ne jamais exposer les credentials CDP côté client (backend subscription uniquement)
Gestion des popups
- Générer les nonces avant que l'utilisateur clique sur « Sign in » pour éviter les bloqueurs de popup
- Utiliser
Cross-Origin-Opener-Policy: same-origin-allow-popups same-origincasse la popup Base Account
Base Pay
- Base Pay fonctionne indépendamment de SIWB — aucune auth requise pour
pay() - Le param
testnetdansgetPaymentStatus()doit correspondre à l'appelpay() - Ne jamais désactiver les actions en fonction du solde onchain seul — vérifier la capability
auxiliaryFunds
Sub Accounts
- Appeler
wallet_addSubAccountà chaque session avant utilisation - Changements de propriété attendus sur les nouveaux appareils/navigateurs
- Seuls les contrats Coinbase Smart Wallet sont supportés pour l'import
Smart Wallets
- Le wrapper ERC-6492 active la vérification de signature avant le déploiement du wallet
- Les
verifyMessage/verifyTypedDatade Viem gèrent cela automatiquement
Pour les cas limites et les derniers changements API
- Docs optimisées pour l'IA : docs.base.org/llms.txt
- Référence complète : docs.base.org/base-account