$ npm install @exodus/walletconnect-web3walletThe Web3Wallet SDK streamlines the integration process, making it easier for wallet developers to include the authentication and transaction signing features necessary for their users to connect and interact with all sorts of apps — now and in the future.
npm install @walletconnect/web3wallet
import { Core } from "@walletconnect/core";
import { Web3Wallet } from "@walletconnect/web3wallet";
const core = new Core({
projectId: process.env.PROJECT_ID,
});
const web3wallet = await Web3Wallet.init({
core, // <- pass the shared `core` instance
metadata: {
name: "Demo app",
description: "Demo Client as Wallet/Peer",
url: "www.walletconnect.com",
icons: [],
},
});
web3wallet.on("session_proposal", async (proposal) => {
const session = await web3wallet.approveSession({
id: proposal.id,
namespaces,
});
});
await web3wallet.core.pairing.pair({ uri });
web3wallet.on("session_proposal", async (proposal) => {
const session = await web3wallet.rejectSession({
id: proposal.id,
reason: getSdkError("USER_REJECTED_METHODS"),
});
});
await web3wallet.disconnectSession({
topic,
reason: getSdkError("USER_DISCONNECTED"),
});
web3wallet.on("session_request", async (event) => {
const { id, method, params } = event.request;
await web3wallet.respondSessionRequest({ id, result: response });
});
await web3wallet.updateSession({ topic, namespaces: newNs });
await web3wallet.extendSession({ topic });
await web3wallet.emitSessionEvent({
topic,
event: {
name: "accountsChanged",
data: ["0xab16a96D359eC26a11e2C2b3d8f8B8942d5Bfcdb"],
},
chainId: "eip155:1",
});
web3wallet.on("session_proposal", handler);
web3wallet.on("session_request", handler);
web3wallet.on("session_delete", handler);
const iss = `did:pkh:eip155:1:${address}`;
web3wallet.on("auth_request", async (event) => {
// format the payload
const message = web3wallet.formatMessage(event.params.cacaoPayload, iss);
// prompt the user to sign the message
const signature = await wallet.signMessage(message);
// respond
await web3wallet.respondAuthRequest(
{
id: args.id,
signature: {
s: signature,
t: "eip191",
},
},
iss,
);
});
await web3wallet.core.pairing.pair({ uri: request.uri, activatePairing: true });
web3wallet.on("auth_request", handler);