Implementation of the EIP-6963 standard (Multi Injected Provider Discovery) for Sophon wallet. This enables applications to discover the Sophon wallet alongside other wallets in a standardized way.
The Sophon SDK addresses several key challenges in blockchain application development:
- Seamless Wallet Integration: Provides a standardized way to integrate with Sophon wallet without complex configuration
- EIP Standards Compliance: Follows Ethereum Improvement Proposals (EIPs) to ensure compatibility with the ecosystem
- Multi-Wallet Support: Implements EIP-6963 for better multi-wallet discovery and interaction
- Developer Experience: Simplifies the wallet connection process to let developers focus on building their applications
- Node.js (v14+)
- npm or yarn
To integrate the Sophon wallet with EIP-6963 support in your project:
# Using npm
npm install @sophon-labs/eip6963
# Using yarn
yarn add @sophon-labs/eip6963
EIP-6963 is a standard that allows multiple Ethereum wallet providers to be discovered on a web page without conflicting with each other, unlike the traditional window.ethereum
approach.
- Import and initialize the EIP-6963 emitter in your application entry point:
import "@sophon-labs/eip6963/testnet";
// The Sophon wallet will now announce itself via the EIP-6963 protocol
// No additional setup is required
This will automatically:
- Register the Sophon wallet provider
- Announce it through the EIP-6963 events
- Make it available to EIP-6963 compatible applications
Most modern wallet connection libraries, like RainbowKit, wagmi, or Reown Appkit, support EIP-6963. Here's how to connect with wagmi:
import { getDefaultConfig } from "@rainbow-me/rainbowkit";
import { sophonTestnet, sophon } from "wagmi/chains";
import "@sophon-labs/eip6963/testnet"; // Import to announce the Sophon provider
export const config = getDefaultConfig({
appName: "Your Application",
projectId: "YOUR_PROJECT_ID",
chains: [sophon, sophonTestnet],
ssr: true,
});
With this setup, the Sophon wallet will appear in the wallet selection UI provided by RainbowKit.
The Sophon wallet implements the Ethereum Provider JavaScript API (EIP-1193), which defines a standard interface for Ethereum providers. This ensures compatibility with existing tools and libraries in the Ethereum ecosystem.
The @sophon/eip6963
package implements the Multi Injected Provider Discovery specification, which:
- Announces the Sophon wallet provider through window events
- Provides wallet metadata (name, icon, RDNS identifier)
- Returns a compliant EIP-1193 provider interface
- Responds to provider discovery requests
See the examples/eip6963-rainbow-wagmi
and examples/eip6963-appkit
directories for a complete example of integrating the Sophon wallet with RainbowKit and wagmi or AppKit.