> For the complete documentation index, see [llms.txt](https://docs.zebec.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zebec.io/zebec-bridge/bridge-sdk/creating-clients.md).

# Creating clients

Currently, there are two clients:

1. Evm Bridge client
2. Solana Bridge client

Evm bridge client instances can be created in following way:

```typescript
const sourceChain = CHAIN_ID_BSC;
const targetChain = CHAIN_ID_SOLANA;

const ethClient = new ZebecEthBridgeClient(
   BSC_ZEBEC_BRIDGE_ADDRESS, 
   signer, 
   sourceChain
);
```

Solana bridge client instances can be created in following way:

```typescript
const connection = new Connection(SOLANA_HOST);
const wallet = new anchor.Wallet(keypair);
const achorProvider = new anchor.AnchorProvider(
   connection, 
   wallet, 
   AnchorProvider.defaultOptions()
);
const wormholeConfig = {
   coreBridgeProgram: new PublicKey(SOL_BRIDGE_ADDRESS),
   tokenBridgeProgram: new PublicKey(SOL_TOKEN_BRIDGE_ADDRESS),
};
const FEE_RECEIVER = "<solana pubkey>"
const zebecInstructions = new ZebecInstructions(anchorProvider);
const bridgeProgram = ZebecSolBridge__factory.getProgram(new PublicKey(SOL_ZEBEC_BRIDGE_ADDRESS), anchorProvider);
const bridgeTransactions = new ZebecBridgeTransactions(bridgeProgram);

const solanaClient = new ZebecSolBridgeClient(
   anchorProvider,
   bridgeProgram,
   bridgeTransactions,
   zebecInstructions,
   wormholeConfig,
   FEE_RECEIVER,
);
```

Here, `FEE_RECEIVER` is solana pubkey address which receives fee for provider streaming services. If you're using this sdk for providing stream service to other, then you must have initialzed before streaming.
