useSilentClient
The useSilentClient hook creates and manages a SilentSwap client instance. This client is required for all Silent Swap operations.
Import
import { useSilentClient } from '@silentswap/react';
import { ENVIRONMENT } from '@silentswap/sdk';Basic Usage
import { useSilentClient } from '@silentswap/react';
import { ENVIRONMENT } from '@silentswap/sdk';
function MyComponent() {
const { client } = useSilentClient({
config: {
environment: ENVIRONMENT.MAINNET,
baseUrl: 'https://api.silentswap.com',
},
});
// Use client for other hooks
return <div>Client initialized</div>;
}API Reference
Options
interface useSilentClientOptions {
config: SilentSwapClientConfig;
}
interface SilentSwapClientConfig {
/** Environment (MAINNET, TESTNET, etc.) */
environment: ENVIRONMENT;
/** Base URL for the API (optional) */
baseUrl?: string;
}Return Value
interface useSilentClientReturn {
/** SilentSwap client instance */
client: SilentSwapClient;
}Configuration
Environment Options
import { ENVIRONMENT } from '@silentswap/sdk';
// Mainnet
const { client } = useSilentClient({
config: {
environment: ENVIRONMENT.MAINNET,
baseUrl: 'https://api.silentswap.com',
},
});
// Testnet
const { client } = useSilentClient({
config: {
environment: ENVIRONMENT.TESTNET,
baseUrl: 'https://api-testnet.silentswap.com',
},
});Custom Base URL
const { client } = useSilentClient({
config: {
environment: ENVIRONMENT.MAINNET,
baseUrl: 'https://custom-api.silentswap.com', // Custom API endpoint
},
});Integration with Other Hooks
The client instance is used by other Silent Swap hooks:
import {
useSilentClient,
useAuth,
useWallet,
useSilentQuote
} from '@silentswap/react';
function SwapComponent() {
// Initialize client
const { client } = useSilentClient({
config: {
environment: ENVIRONMENT.MAINNET,
},
});
// Use client in other hooks
const { auth, signIn } = useAuth({
client,
address: address!,
walletClient,
});
const { wallet, generateWallet } = useWallet({
address: address!,
auth,
walletClient,
});
const { getQuote, executeSwap } = useSilentQuote({
client,
address: address!,
walletClient,
facilitatorGroup: wallet?.accounts[0]?.group(),
});
// ... rest of component
}Memoization
The client instance is memoized based on the config, so it won't be recreated unless the config changes:
// This will only create one client instance
const { client } = useSilentClient({
config: {
environment: ENVIRONMENT.MAINNET,
},
});
// Even if component re-renders, same client is reusedNext Steps
- Learn about authentication
- Understand wallet generation
- See complete example