split
The split transport allows you to provide overrides for specific RPC methods. This is useful, for example, if you want to send bundler traffic to one provider and node traffic to another.
Import
import { split } from "@alchemy/aa-core";
Usage
splitTransport.ts
import { createSmartAccountClient, sepolia, split } from "@alchemy/aa-core";
import { http } from "viem";
const bundlerMethods = [
"eth_sendUserOperation",
"eth_estimateUserOperationGas",
"eth_getUserOperationReceipt",
"eth_getUserOperationByHash",
"eth_supportedEntryPoints",
];
const splitTransport = split({
overrides: [
{
methods: bundlerMethods,
transport: http("BUNDLER_RPC_URL"),
},
],
fallback: http("OTHER_RPC_URL"),
});
export const client = createSmartAccountClient({
chain: sepolia,
transport: splitTransport,
});
Parameters
import { type SplitTransportProps } from "@alchemy/aa-core";
overrides
{transport: Transport, methods: string[]}[]
The overrides param is an array of objects containing a transport
param of type Transport
from viem (eg. http
) and an array of methods
that this transport should handle
fallback
Transport
This is the Transport
to use for all other methods
Return Type
import { type CustomTransport } from "viem";
Returns a CustomTransport
that can be passed to any compatible viem
Client. This includes any SmartAccountClient
instance.