Typink comes with existing information for some well-known ink! contract networks ready to use out of the box, but you can always define and register your own custom network into Typink.
Well-known ink! contracts supported networks
Copy import { alephZero, astar, shiden } from 'typink'
<TypinkProvider
...
supportedNetworks={[alephZero, astar, shiden]}
defaultNetworkId={alephZero.id}>
<MyAppComponent ... />
</TypinkProvider>
Copy import { popTestnet, alephZeroTestnet, shibuyaTestnet } from 'typink'
<TypinkProvider
...
supportedNetworks={[popTestnet, alephZeroTestnet, shibuyaTestnet]}
defaultNetworkId={popTestnet.id}>
<MyAppComponent ... />
</TypinkProvider>
Copy import { development } from 'typink'
<TypinkProvider
...
supportedNetworks={[development]}
defaultNetworkId={development.id}>
<MyAppComponent ... />
</TypinkProvider>
Define & register custom network info
Copy type NetworkId = string;
enum JsonRpcApi {
LEGACY = 'legacy',
NEW = 'new',
}
interface NetworkInfo {
id: NetworkId;
name: string;
logo: string;
providers: string[];
symbol: string;
decimals: number;
subscanUrl?: string;
pjsUrl?: string;
faucetUrl?: string;
jsonRpcApi?: JsonRpcApi; // default to new
}
Copy import { NetworkInfo } from 'typink';
const myNetwork: NetworkInfo = {
id: 'my_network';
name: 'My Network';
logo: 'https://path/to/your/network/logo';
providers: ['wss://mynetwork.dev'];
symbol: 'MYN';
decimals: 12;
}
Copy <TypinkProvider
...
supportedNetworks={[myNetwork]}
defaultNetworkId={myNetwork.id}>
<MyAppComponent ... />
</TypinkProvider>