/paymaster-bundler-examples

Primary LanguageJavaScriptApache License 2.0Apache-2.0

This repo has code examples on how to sponsor a mint for a Knight Warriors NFT on Base Sepolia using Coinbase Cloud's Paymaster & Bundler. If you'd like to see a live demo app sponsoring NFT mints in action, check out ours here.

We currently have examples for the following SDKs, but contributions are always welcome! See Contributing for more details.

Supported SDKs

Supported Account Types

Compatibility

SDK Simple Safe Kernel
aa-core
permissionless.js
@zerodev/sdk

Getting Started

Prerequisites: you'll need to have node and yarn installed.

1. Clone this repo locally

git clone https://github.com/coinbase/paymaster-bundler-examples.git

2. Set up environment variables

  • Copy the env example

cp .env.example .env
  • Install dotenv

yarn
  • This will setup dotenv to load the env file for private values

  • Create your Base Node RPC URL

    • Navigate to https://coinbase.com/cloud/products/base/rpc
    • Sign up for a Coinbase Cloud account, if you don't have one already
    • Create a project, and select Base Sepolia
    • Click "Activate" on the Paymaster & Bundler modal
    • Copy your RPC endpoint, and paste it into .env as the RPC_URL variable.
  • Add a signer

    You'll need to add a private key to initialize and sign for your ERC-4337 smart contract account

    • Since the NFT mint is free and gas will be sponsored by our Paymaster, you can use a new account without any funds
    • You can create a new private key with Foundry
      • To install Foundry, run curl -L https://foundry.paradigm.xyz | bash
      • To generate a new key pair, run cast wallet new
    • Copy your private key, and paste it into .env as the PRIVATE_KEY variable
  • Optional: configure the smart account for Pimlico

    • If you're using Pimlico, you can use a different smart account type by changing the account_type variable in .env
      • Valid values: simple, safe, kernel
      • pimlico/src/account.js is a code example on how to configure a different smart account for SDKs that support this feature

3. Navigate to the directory of the SDK you want to run the example with.

Example for Alchemy

cd examples/alchemy

4. Install the dependencies with yarn

yarn

5. Run the example

yarn dev

6. See your sponsored transaction live!

You should receive an Etherscan link with your sponsored transaction in the terminal output. Example

Minting to 0xF19CEA17462220437000F459f721e3e393bd1fc9
Waiting for transaction...
 ⛽ Successfully sponsored gas for mintTo transaction with Coinbase Cloud!
 🔍 View on Etherscan: https://sepolia.basescan.org/tx/0xe51e9bf6fea0dfecfcbf7168bcc7da2c833ad0dcac5651940953a89857674885
✨  Done in 5.66s.

7. Play around with our demo app

If you'd like to see an example of an app sponsoring NFT mints in action, check out our demo app here.