Code Monkey home page Code Monkey logo

paymaster-bundler-examples's Introduction

This repo has code examples on how to sponsor a mint for a Knight Warriors NFT on Base Sepolia using Coinbase Developer Platform'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

  • Get your Node RPC URL

    • Navigate to https://www.coinbase.com/developer-platform/products/base-node
    • Sign up for a Coinbase Developer Platform account, if you don't have one already.
    • Under the Build Onchain section in the Portal, select Node
    • In the dropdown on the top right of Configuration, select Base Testnet (Sepolia)
    • Copy your RPC endpoint, and paste it into .env as the RPC_URL variable.
      • The RPC URL should look like https://api.developer.coinbase.com/rpc/v1/base-sepolia/<api_key>
  • 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 Developer Platform!
 🔍 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.

paymaster-bundler-examples's People

Contributors

0xalec avatar alex-hu-1 avatar cfluke-cb avatar chunter-cb avatar derekchiang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

paymaster-bundler-examples's Issues

Unreviewed commit on master!

Unreviewed commit(s) COMPARE was merged to master by 0xAlec.

Comment with appropriate number of 👍 to approve.


Reviewed requirements satisfied? No
Ancestors reviewed? Yes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.