L2aaS gives you your own private EVM chain — a self-contained dev appchain reachable over a single RPC URL. It is not a shared testnet and it is not a layer built on top of another network: it is a standalone blockchain that is yours alone, ideal for developers and students who want a real EVM environment to build, deploy, and experiment on.
Your chain is a standard EVM blockchain. Any tool that works with Ethereum works with your chain — MetaMask, Remix, Hardhat, Foundry, ethers.js, viem, web3.js.
When your chain is created we generate a wallet for it and show you the public address, the private key, and the BIP39 mnemonic exactly once, at creation time.
Because we keep no copy, your funds and signing authority are yours alone. L2aaS operates the chain infrastructure; you hold the keys.
Every tier — including Free — gets an RPC endpoint. It looks like this:
https://rpc.l2aas.net/l2k_YOUR_KEY
Your Chain ID and exact endpoint are shown on your account page.
import { JsonRpcProvider } from 'ethers';
const provider = new JsonRpcProvider(
'https://rpc.l2aas.net/l2k_YOUR_KEY'
);
const block = await provider.getBlockNumber();
console.log('Current block:', block);
import { createPublicClient, http, defineChain } from 'viem';
const myChain = defineChain({
id: YOUR_CHAIN_ID, // from your account page
name: 'My Chain',
nativeCurrency: { name: 'OPGas', symbol: 'OPG', decimals: 18 },
rpcUrls: { default: { http: ['https://rpc.l2aas.net/l2k_YOUR_KEY'] } },
});
const client = createPublicClient({
chain: myChain,
transport: http(),
});
curl -X POST https://rpc.l2aas.net/l2k_YOUR_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
Add your chain to MetaMask in under 60 seconds:
| Field | Value |
|---|---|
| Network name | My Chain (or any name you prefer) |
| New RPC URL | https://rpc.l2aas.net/l2k_YOUR_KEY |
| Chain ID | Your Chain ID (shown on account page) |
| Currency symbol | OPG |
| Block explorer URL | Leave blank (optional) |
After adding the network, switch to it. Your OPGas balance will appear as the native-currency balance in MetaMask.
// hardhat.config.js
require('@nomicfoundation/hardhat-toolbox');
module.exports = {
solidity: '0.8.24',
networks: {
mychain: {
url: 'https://rpc.l2aas.net/l2k_YOUR_KEY',
chainId: YOUR_CHAIN_ID,
accounts: [process.env.PRIVATE_KEY],
},
},
};
# Deploy to your chain
npx hardhat run scripts/deploy.js --network mychain
# foundry.toml
[profile.default]
src = "src"
out = "out"
libs = ["lib"]
[rpc_endpoints]
mychain = "https://rpc.l2aas.net/l2k_YOUR_KEY"
# Deploy
forge script script/Deploy.s.sol \
--rpc-url mychain \
--private-key $PRIVATE_KEY \
--broadcast
Remix works two ways with your chain:
https://rpc.l2aas.net/l2k_YOUR_KEYOPGas is a single prepaid balance that runs everything about your chain. You buy it with USDC (or USDT) on Base, and it funds both:
There is no separate hosting invoice and no separate gas top-up — it is one balance for both. Nothing to move between networks: you pay once, into one balance.
| Prepay amount | Discount |
|---|---|
| $20 | Base rate |
| $50 | ~10% off |
| $200 | ~25% off |
| $1,000 | ~40% off |
| Tier | Price | Chain | Resilience | Size cap |
|---|---|---|---|---|
| Free | $0 | Shared demo chain | None | ~250 MB |
| Basic | $20/mo | Your own private chain | No SLA | ~5–10 GB |
| Pro | $200/mo | Your own private chain, kept warm + replicated with frequent backups | 97% SLA | ~25–50 GB |
| Enterprise | $1,500/mo | Dedicated real Ethereum daemon on its own box | 99.9% SLA | ~unlimited |
Basic and Pro run the same engine, so upgrading from Basic to Pro is seamless — we simply add the warm replica and tighter backups. Rental for a paid tier is drawn from your OPGas balance.
Each tier has a size cap on how large its chain can grow (see the table above). A blockchain only ever grows, so the cap is there to keep your chain fast and to keep pricing honest.
eth_sendRawTransaction) are rejected, but reads keep working — you can still query state, balances, and history.Your chain's state depends on your OPGas balance and your tier:
| State | Condition | What happens |
|---|---|---|
| Active | OPGas balance covers the rental | Everything running normally. Paid tiers are kept warm; Free unloads after ~1h idle and reloads on demand. |
| Read-only | Chain at 100% of its size cap | Writes rejected, reads still work. Upgrade, prune, or reset to resume writing. |
| Suspended | OPGas balance depleted | Chain stops processing. Data is retained for a grace period — top up OPGas to reactivate. |
| Scrapped | Free: after 3 months. Paid: after 3 months unpaid. | The chain and its data are permanently removed and cannot be recovered. |
To reactivate a suspended chain, go to your account page and top up OPGas. It restarts automatically.
Billing is simple: one prepaid OPGas balance, bought with USDC or USDT on Base (chain ID 8453). That balance covers both your monthly rental and your on-chain gas — there is no second billing system and no separate gas purchase.
Every purchase is an on-chain transaction on Base, which is your receipt. Prepaid OPGas is non-refundable.
| Error | Meaning |
|---|---|
401 Unauthorized | Invalid or unknown key |
402 Payment Required | OPGas balance depleted — top up from your account page |
403 Forbidden | Method not allowed for customer traffic (only eth_*, net_*, and web3_* methods are exposed) |
429 Too Many Requests | Free tier rate limit exceeded |
503 Service Unavailable | Chain is suspended or being provisioned |
write rejected: size cap reached | Chain is at its size cap and in read-only mode — upgrade, prune, or reset |
execution reverted | Contract error — check your Solidity logic |
insufficient funds | Wallet OPGas balance too low for this transaction's gas |
Yes. Your chain processes real transactions, runs real EVM contracts, and maintains a real chain of blocks. It is a private, self-contained chain isolated from other customers. What you deploy there is yours.
Yes. Deploy any ERC-20 contract and it works exactly as on any EVM chain. OPGas is only the native gas token — you can still deploy arbitrary tokens on top.
No. Your chain is standalone — it does not connect to, or inherit the security of, any other network. The only link to Base is that you pay for OPGas there; the chain itself runs entirely on its own.
No. Your L2aaS key (starts with l2k_) is an access key for the L2aaS service — similar to an API key. Your wallet private key is separate, held only by you, used for signing on-chain transactions.
Neither can be recovered. We show the wallet key and mnemonic once, at creation, and store nothing. There is no email reset and no support path to retrieve them. Save both in a password manager immediately.
Not in the current version. The chain infrastructure is managed by L2aaS. You control your contracts, your wallet, and your OPGas balance. More control may arrive with the Enterprise tier.