Single-chain intents let you make transactions on a chain of your choice. These intents are similar to ERC-4337 User Operations. See our concepts section on intents vs userops to better understand the difference. Relayers execute single-chain intents through the intent executor module. For a breakdown of the high-level flow, please take a look at the Rhinestone Intents concepts section.

Example

Here’s how you can make a token transfer:
const singleChainTx = await rhinestoneAccount.sendTransaction({
  chain: base,
  calls: [
    {
      to: 'USDC',
      data: encodeFunctionData({
        abi: erc20Abi,
        functionName: 'transfer',
        args: [recipient, parseUnits('5', 6)],
      }),
    },
  ],
})