Your first frame transaction.
Go from a local workspace to a signed transaction, then follow it through the sidecar and into a block.
The package is not published to npm yet. These steps use this repository and the installed dependencies in the sibling workshop checkout.
01Set up the workspace
Use Node 20.12 or later and the prepared local workshop. The bootstrap links its pinned dependencies without changing the workshop.
npm run sdk:bootstrapnpm testThe app defaults to the configured Cloudflare gateway on chain 1337. Local Docker is not required. Network identity includes the genesis hash.
02Extend your viem client
import { createPublicClient, defineChain, http } from 'viem';import { frameActions, frameNetworks } from '@framepay/sdk';const network = frameNetworks.devnet; // selected FramePay RPCconst chain = defineChain({ id: network.chainId, name: network.name, nativeCurrency: { name: 'Test Ether', symbol: 'ETH', decimals: 18 }, rpcUrls: { default: { http: [network.rpcUrl] } },});const client = createPublicClient({ chain, transport: http(network.rpcUrl, { retryCount: 0 }),}).extend(frameActions({ profile: 'ethrex-eip8141-tracer' }));03Open the DeFi app
Build the ETHFalcon browser signer using Emscripten 3.1.74, then start the app. The configured devnet already has public deployment records for the wallet factory, paymaster and Aqua market.
npm run aqua:bootstrapnpm run quantum:buildnpm run poc:bootstrapnpm run poc:devOpen the app, create a quantum wallet, deploy it, claim test tokens and review a swap or transfer. Each submitted action checks its receipt and every frame result.
04Try the browser playground
Select Framecraft devnet or Public alt-mempool devnet in the top bar. Both use chain ID 1337 but have separate histories, accounts and deployments. Neither selection requires local Docker.
Create a disposable account in this tab, fund it using the devnet faucet, and walk through the SDK one action at a time. Choose self-payment or request a deployed paymaster, set draft limits, then review the generated frames before signing. The account uses SECP256K1 authorization.
Open playground05Deploy a test paymaster
From the FramePay directory, deploy the included artifact to the selected network. The script creates a separate deployment key, requests faucet funding, and funds the paymaster with 0.01 test ETH.
npm run paymaster:deploy -- --network devnet# Or use the separate public alt-mempool devnet:npm run paymaster:deploy -- --network publicAfter a successful deployment, the script records its receipt, code hash and genesis in config/paymasters.json. The playground then offers “Use deployed FramePay paymaster” for that network. Run the dev server or rebuild a production frontend after updating this file.
This is an open test sponsor: anyone can consume its finite budget, subject to a 0.001 ETH maximum transaction cost. It does not provide allowlisted sponsorship, token reimbursement or automatic refills. Its policy depends on the ethrex profile’s MAX_COST extension.
If a deployment response is lost, rerun the same command to inspect the saved transaction hash. The script does not automatically send a second deployment. A chain reset or source change requires reviewing the old record before a new deployment.