For Startups
Live in hours. Paying only when you grow.
permissionless.js plus a free testnet tier means smart accounts ship this sprint, not this quarter. No contracts, no minimums, no sales call required.
import { createSmartAccountClient } from "permissionless"
import { toSafeSmartAccount } from "permissionless/accounts"
import { createPimlicoClient } from "permissionless/clients/pimlico"
import { http, parseEther } from "viem"
import { base } from "viem/chains"
const pimlicoUrl = "https://api.pimlico.io/v2/base/rpc?apikey=API_KEY"
const pimlicoClient = createPimlicoClient({ transport: http(pimlicoUrl) })
const account = await toSafeSmartAccount({
client: publicClient,
owners: [owner],
version: "1.4.1",
})
// Gas is sponsored, so your user never sees a fee
const smartAccountClient = createSmartAccountClient({
account,
chain: base,
bundlerTransport: http(pimlicoUrl),
paymaster: pimlicoClient,
})
const txHash = await smartAccountClient.sendTransaction({
to: "0x...",
value: parseEther("0.1"),
})Why startups start here
Infrastructure that doesn't slow the sprint
Hours to first transaction
Clean, typed APIs and a tutorial that gets you from zero to a sponsored transaction in one sitting.
No future migration
The same API serves Daimo-sized startups and MetaMask-sized platforms. Growing never means re-platforming.
The rate card
What $0 actually includes
“No minimums” is not a slogan; it is the rate card. Testnets are free with no sponsorship surcharge, and in production the published rates are the whole deal: no contracts, no commitments, and a bill that starts when your usage does.
Even the sponsorship surcharge is printed on the card, so the number you budget against is the number you pay.
Pay-as-you-go
$0 per month, card required
- All mainnets & testnets (100+ chains)
- 10,000,000 credits / month included
- Then $1 per additional 100,000 credits
- ~$0.0075 per user operation (~$0.0105 sponsored)
- 5,000 requests / minute
- 10% surcharge on sponsored gas (mainnet)
Works with your stack
Your auth stack already works
You already picked your login: Privy, Dynamic, Magic, or passkeys. Every name below ships with a maintained permissionless.js integration and a step-by-step guide, so wiring your existing auth into smart accounts takes hours, not a sprint. And if yours is not listed, any viem-compatible signer plugs in — if it can sign, it works.
Smart accounts
Social login
Passkeys
Key management
No future migration
One line when you grow
When the roadmap needs users paying their own fees in USDC, USDT, or 300+ other tokens — or hard caps so a seed-stage gas budget can't run away — it is one line on the client you already shipped. Policy budgets stop sponsorship on their own, and growing into the rest of the engine is a config change, not a re-platform.
// Same client, plus one line — token approvals are injected for you
const smartAccountClient = createSmartAccountClient({
// ...same setup as before, plus:
userOperation: {
prepareUserOperation: prepareUserOperationForErc20Paymaster(pimlicoClient),
},
})
const txHash = await smartAccountClient.sendTransaction({
to: "0x...",
value: parseEther("0.1"),
paymasterContext: {
token: usdc, // any of 300+ supported ERC20 tokens
},
})// Attach a sponsorship policy created in the dashboard:
// "Sponsor the first 5 transactions per user, up to $1 each,
// with a $5,000 campaign budget"
const txHash = await smartAccountClient.sendTransaction({
to: "0x...",
data: "0x...",
paymasterContext: {
sponsorshipPolicyId: "sp_first_five_free",
},
})Debugging included
Tools that respect your time
Cryptic AA error codes are decoded into plain English, with dashboards and analytics that show what failed and why. The debugging time you save is sprint time you keep.
// AA23 decoded by the dashboard:
✗ reverted: paymaster validation failed
→ Policy sp_onboarding_q3 cap reached for user
→ Fix: raise per-user limit or attach fallback
Headroom
The ceiling is nowhere in sight
The same API that runs your first sponsored transaction runs the biggest smart account deployments in the industry.
Frequently asked questions
Do I need a credit card or a contract?
A card on file, yes — a contract, no. Pay-as-you-go has no monthly minimum and no commitments, and a monthly credit allowance is included before any usage charges apply.
See the rate cardWhat does production actually cost?
The two lines that matter on the Pay-as-you-go rate card: ~$0.0075 per user operation (~$0.0105 sponsored), and a 10% surcharge on sponsored gas (mainnet). Testnets are free, with no surcharge.
See full pricingWhich smart accounts and signers work out of the box?
Every major one. Safe, Kernel, MetaMask Smart Accounts, and Coinbase Wallet work without extra setup, and signers from Privy and Dynamic to Turnkey and passkeys plug in the same way. If you are starting fresh, permissionless.js creates accounts in a few lines.
Browse all integrationsWhat happens when we outgrow Pay-as-you-go?
Nothing dramatic. Pay-as-you-go is rated at 5,000 requests / minute, which carries most startups well past launch. When you need more, Enterprise removes rate limits and adds lower pre-paid rates and custom SLAs, and the API your code runs on stays exactly the same.
Are we locked in?
No. alto, the bundler underneath, is open source with 729K+ downloads and can be self-hosted, and permissionless.js is built on viem, so your account and signer code stays portable. Teams stay for the multi-chain coverage, monitoring, and support, not because leaving is hard.