Skip to main content
The Intent Executor is an ERC-7579 executor module that must be installed on your smart account before you can use Rhinestone’s Warp infrastructure. It is the onchain component that allows the Rhinestone Orchestrator and its relayers to execute crosschain intents on behalf of your account. Without it, the Orchestrator has no permission to execute transactions through your smart account — even if you have signed a valid intent offchain.

Contract address

0x00000000005aD9ce1f5035FD62CA96CEf16AdAAF
Deployed on all chains supported by Rhinestone.

Installation

The Intent Executor is a standard ERC-7579 executor module (module type 2). Install it using the SDK’s installModule action:
import { installModule } from '@rhinestone/sdk/actions'

const result = await rhinestoneAccount.sendTransaction({
  targetChain: base,
  calls: [
    installModule({
      address: '0x00000000005aD9ce1f5035FD62CA96CEf16AdAAF',
      type: 'executor',
    }),
  ],
})
Install the module on every chain where you want to use Rhinestone intents.

Verifying installation

Read the isInitialized function on the Intent Executor contract to check whether it has been installed on your account:
import { createPublicClient, http } from 'viem'
import { base } from 'viem/chains'

const publicClient = createPublicClient({
  chain: base,
  transport: http(),
})

const isInstalled = await publicClient.readContract({
  address: '0x00000000005aD9ce1f5035FD62CA96CEf16AdAAF',
  abi: [{
    name: 'isInitialized',
    type: 'function',
    inputs: [{ name: 'smartAccount', type: 'address' }],
    outputs: [{ name: '', type: 'bool' }],
    stateMutability: 'view',
  }],
  functionName: 'isInitialized',
  args: [accountAddress],
})
Returns true once the module has been installed on the account.

Uninstalling

import { uninstallModule } from '@rhinestone/sdk/actions'

const result = await rhinestoneAccount.sendTransaction({
  targetChain: base,
  calls: [
    uninstallModule({
      address: '0x00000000005aD9ce1f5035FD62CA96CEf16AdAAF',
      type: 'executor',
    }),
  ],
})

Next steps

API Quickstart

Start sending intents with the Rhinestone API once the module is installed.