{"id":19303795,"url":"https://github.com/web3w/web3-provider","last_synced_at":"2026-05-13T21:33:51.155Z","repository":{"id":41065078,"uuid":"507483590","full_name":"web3w/web3-provider","owner":"web3w","description":"Wallet Connect Client compatible with Web3.js and ethers.js","archived":false,"fork":false,"pushed_at":"2022-09-05T11:41:28.000Z","size":15049,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-13T03:50:11.176Z","etag":null,"topics":["ethereum","ethersjs","walletconnect","web3js"],"latest_commit_sha":null,"homepage":"https://web3w.github.io/web3-provider","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/web3w.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-26T05:14:21.000Z","updated_at":"2022-12-29T07:04:10.000Z","dependencies_parsed_at":"2022-07-18T08:13:46.874Z","dependency_job_id":null,"html_url":"https://github.com/web3w/web3-provider","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/web3w/web3-provider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3w%2Fweb3-provider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3w%2Fweb3-provider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3w%2Fweb3-provider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3w%2Fweb3-provider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/web3w","download_url":"https://codeload.github.com/web3w/web3-provider/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3w%2Fweb3-provider/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284471203,"owners_count":27010795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-14T02:00:06.101Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ethereum","ethersjs","walletconnect","web3js"],"created_at":"2024-11-09T23:27:35.118Z","updated_at":"2025-11-14T22:08:14.467Z","avatar_url":"https://github.com/web3w.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# web3-provider \nWallet Connect Client compatible with Web3.js and ethers.js\n\nexample: https://web3w.github.io/web3-provider/\n\n##install\n`npm i web3-signer-provider`  \nnode 18\n`NODE_OPTIONS=--openssl-legacy-provider`\n\n## For ethers.js\n### connect\n```ts\n    import {WalletProvider} from 'web3-signer-provider'\n    public connect = async () =\u003e { \n        const provider = new WalletProvider({qrcodeModal: QRCodeModal, bridge});\n        const ethersSigner = new ethers.providers.Web3Provider(provider).getSigner()\n       \n        if (!provider.connected) { \n            await provider.connect();\n        } \n        // subscribe to events\n        provider.on(\"connect\", (error, payload) =\u003e {\n            if (error) {\n                throw error;\n            }\n            this.onConnect(payload);\n        });\n    \n        provider.on(\"disconnect\", (error, payload) =\u003e {\n            if (error) {\n                throw error;\n            }\n            this.onDisconnect();\n        });\n    }; \n```\n### signMessage\n```ts\n public testStandardSignMessage = async () =\u003e {\n    const {address, ethersSigner, chainId} = this.state;\n\n    if (!ethersSigner) {\n        return;\n    }\n\n    // test message\n    const message = `My email is web3wr@gmail.com ethers.js - ${new Date().toUTCString()}`;\n \n\n    try { \n        const result = await ethersSigner.signMessage(message);\n\n        // verify signature\n        const hash = hashMessage(message);\n        const valid = await verifySignature(address, result, hash, chainId);\n        const formattedResult = {\n            method: \"eth_sign (standard)\",\n            address,\n            valid,\n            result,\n        };\n \n    } catch (error) { \n        console.error(error); \n    }\n};\n```\n### close\n```ts \n    public killSession = async () =\u003e {\n        const {provider} = this.state;\n        if (provider) {\n            provider.close();\n        }\n        this.resetApp();\n    };\n```\n\n## For web3.js\n### connect\n```ts\n import {WalletProvider} from 'web3-signer-provider'\n public connect = async () =\u003e {\n    const provider = new WalletProvider({qrcodeModal: QRCodeModal, bridge});\n    const web3Signer = new Web3(provider)\n\n    if (!provider.connected) {\n        await provider.connect();\n    }\n    // subscribe to events\n    provider.on(\"connect\", (error, payload) =\u003e {\n        if (error) {\n            throw error;\n        }\n        this.onConnect(payload);\n    });\n\n    provider.on(\"disconnect\", (error, payload) =\u003e {\n        if (error) {\n            throw error;\n        }\n        this.onDisconnect();\n    });\n};\n```\n### signMessage\n```ts\n public testStandardSignMessage = async () =\u003e {\n    const {address, ethersSigner, chainId} = this.state;\n\n    if (!ethersSigner) {\n        return;\n    }\n\n    // test message\n    const message = `My email is web3wr@gmail.com ethers.js - ${new Date().toUTCString()}`;\n \n\n    try {\n        const result = await web3Signer.eth.signMessage(msgParams);\n\n        // verify signature\n        const hash = hashMessage(message);\n        const valid = await verifySignature(address, result, hash, chainId);\n        const formattedResult = {\n            method: \"eth_sign (standard)\",\n            address,\n            valid,\n            result,\n        };\n \n    } catch (error) { \n        console.error(error); \n    }\n};\n```\n\n### cloes\n```ts\npublic killSession = async () =\u003e {\n    const {provider} = this.state;\n    if (provider) {\n        provider.close();\n    }\n    this.resetApp();\n};\n```\n\n\n## Test \n`export NODE_OPTIONS=--openssl-legacy-provider`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb3w%2Fweb3-provider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweb3w%2Fweb3-provider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb3w%2Fweb3-provider/lists"}