Internally, the SDK uses ERC-4337 bundlers to submit transactions as UserOps (e.g., when using smart sessions or social recovery). Supplying the API key is optional and only recommended when using the ERC-4337 flow.

Bundlers

Pimlico

To use the Pimlico bundler, provide an API key during account initialization:
const rhinestoneAccount = await createRhinestoneAccount({
  owners: {
    type: 'ecdsa',
    accounts: [account],
  },
  rhinestoneApiKey,
  bundler: {
    type: 'pimlico',
    apiKey: pimlicoApiKey,
  },
})

Biconomy

To use the Biconomy bundler, provide an API key during account initialization:
const rhinestoneAccount = await createRhinestoneAccount({
  owners: {
    type: 'ecdsa',
    accounts: [account],
  },
  rhinestoneApiKey,
  bundler: {
    type: 'biconomy',
    apiKey: biconomyApiKey,
  },
})

Paymasters

Pimlico

To use the Pimlico paymaster, provide an API key during account initialization:
const rhinestoneAccount = await createRhinestoneAccount({
  owners: {
    type: 'ecdsa',
    accounts: [account],
  },
  rhinestoneApiKey,
  paymaster: {
    type: 'pimlico',
    apiKey: pimlicoApiKey,
  },
})

Biconomy

To use the Biconomy paymaster, provide an API key during account initialization:
const rhinestoneAccount = await createRhinestoneAccount({
  owners: {
    type: 'ecdsa',
    accounts: [account],
  },
  rhinestoneApiKey,
  bundler: {
    type: 'biconomy',
    apiKey: biconomyApiKey,
  },
})
Reach out if you need support for other ERC-4337 providers!