svelte-kit-ethers-template

Svelte Kit Ethers Template

Typescript Boilerplate for building Ethereum dApps with Svelte Kit, TailwindCSS & Ethers.

Svelte Kit Ethers Template

Basic Setup

Install dependencies

yarn

Enter your own or a RPC provider endpoint for your project in the rpcUrl parameter of ./src/lib/config.ts to make on-chain calls, and interact with Metamask, etc. You can use the default RPC provider used, or replace https://rpc.ankr.com/eth with your RPC provider.

export const NETWORKS: Network[] = [
  {
    chainId: 1,
    rpcUrl: 'https://rpc.ankr.com/eth', // Your RPC endpoint, add here
...

Start development server

yarn dev

Building Before creating a production version of your app, install an adapter for your target environment. Then:

yarn build

Features

Wallet & Providers

After adding a list of networks in ./src/lib/config.ts, you have access to ethers providers for each network.

import { networkProviders: { [chainId: string]: providers.JsonRpcProvider } } from '$lib/stores/provider'

Methods to connect wallets

  • connectMetamask - Connect Metamask or other injected wallets
  • connectWalletConnect - Wallet Connect Connection
  • and disconnect

Stores for the connection information are also provided

import {
    accountChainId,
    accountProvider,
    connected,
    walletAddress
} from '$lib/stores/provider'
  • accountChainId - { chainId: number, supportedNetwork: boolean } supportedNetwork is true if you have provided configuration options for this network
  • accountProvider - EIP-11933 compliant provider object. Generally used with ethers.providers.Web3Provider($accountProvider)
  • connected - boolean
  • walletAddress - Defaults to 0x0000000000000000000000000000000000000000 if not connected

Contract State Syncing

In src/lib/globalState.ts is an example usage of ether-state - A library for syncing the state of smart contracts in your frontend.

Top categories

Loading Svelte Themes