[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10576":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":35,"lastSyncTime":36,"discoverSource":37},10576,"Rabby","RabbyHub\u002FRabby","RabbyHub","The game-changing wallet for Ethereum and all EVM chains","https:\u002F\u002Frabby.io",null,"TypeScript",1846,571,34,119,0,1,3,16,61.37,"Other",false,"develop",true,[26,27,28,29,30,31],"blockchain","chrome-extension","dapp","defi","ethereum","ethereum-wallet","2026-06-12 04:00:51","# Rabby Wallet\n\nRabby Wallet is an open-source browser plugin for the DeFi ecosystem, providing users with a better-to-use and more secure multi-chain experience.\n\n## Install\n\nYou can download the latest Rabby [here](https:\u002F\u002Fgithub.com\u002FRabbyHub\u002FRabby\u002Freleases\u002Flatest).\n\n## Guideline for Integrating Rabby Wallet\n\nTo help dapp developers support and integrate Rabby Wallet more easily, we recommend using our integration solution that has almost NO development cost and does not introduce any uncertainty:\n\n### Problem\n\nWhen a dapp connects to an extension wallet, it usually works in this way:\n\n1. The extension wallet will integrate an \"Ethereum\" object into the dapp page while it's loading.\n2. The dapp will look for this \"Ethereum\" object to determine if an extension wallet is installed.\n3. If the \"Ethereum\" object is detected, all following interactions between the dapp and the extension wallet are realized by this \"Ethereum\" object.\n4. If the \"Ethereum\" object is not detected, the dapp will ask users to download a new extension wallet.\n\nThe problem is that many dapps will wrongly display this detected \"Ethereum\" object as \"MetaMask\" and display a \"connect to MetaMask\" button by default, which brings a lot of confusion to the users since any Web3 wallet can inject this \"Ethereum\" object.\n\n### Solution\n\nWe recommend solving the above problem with simple modifications as follows:\n\n1. On your connection page, display both connection buttons for \"MetaMask\" and \"Rabby Wallet\" when the \"Ethereum\" object is detected. These two buttons basically have the same function. Users can click either of them to interact with the \"Ethereum\" object and perform the connection operation. These two buttons are only used to display both brands' logos to help users understand their operation path.\n2. If the \"Ethereum\" object is not detected, then suggest that users download the extension wallet and provide download links for both \"MetaMask\" and \"Rabby Wallet.\"\n\nThis solution does not involve any changes to your actual business logic and is just simple UI adjustments. It does not introduce any uncertainty and is rather low cost.\n\nYou can refer to [debank.com](https:\u002F\u002Fdebank.com) for the final display effect.\n\n### Potential Issues\n\nAccording to the above solution, if a user is using the \"Rabby Wallet\" and clicks the \"connect to MetaMask\" button, they will still interact with the \"Rabby Wallet\" and vice versa, which might be a bit weird.\n\nHowever, this issue is a very rare scenario and very unlikely to happen because users are not likely to click and interact with an extension wallet they haven't installed. Even if it happens, it's not a real problem from the user's perspective.\n\nPlease don't hesitate to reach out if you have any doubts.\n\n## Contribution\n\n### Install Dependency\n\n1. Install Node.js version 14 or later.\n2. Install Yarn: `npm install -g yarn`\n3. Run `yarn` to install dependencies.\n\n### Development\n\nRun `yarn build:dev` to develop with file watching and development logging (you can see requests sent by the dapp in the website console in this mode, and notifications will not close when focus is lost).\n\nRun `yarn build:pro` to build a production package, which will be in the `dist` folder.\n\n## Architecture\n\n![architecture](.\u002Fdocs\u002Farchitecture.png)\n\n## Extension's Scripts\n\nBelow 4 scripts all live in different contexts!\n\n### `background.js`\n\nHandles all async requests and encryption tasks.\n\nUser's keyrings, passwords, and wallet personal preference data are all stored in Chrome local storage.\n\nIt has 2 main controllers:\n\n1. `walletController`\n\n   Exposes methods to the background window, so other scripts can access these methods with `runtime.getBackgroundPage`, e.g., `ui.js`.\n\n2. `providerController`\n\n   Handles requests from pages (dapp requests).\n\n### `content-script`\n\nInjected at `document_start`, shares the same DOM with the dapp, and uses `broadcastChannel` to tap `pageProvider`.\n\nThe main purpose is to inject `pageProvider.js` and pass messages between `pageProvider.js` and `background.js`.\n\n### `pageProvider.js`\n\nThis script is injected into the dapp's context through `content-script`. It mounts `ethereum` to `window`.\n\nWhen the dapp uses `window.ethereum` to request, it will send a message to `content-script` with `broadcastChannel` and wait for its response.\n\nThen the `content-script` will send a message to `background` with `runtime.connect`.\n\nAfter `background` receives the message, it will use `providerController` to handle the request and keep the message channel in `sessionService` for later communication.\n\n### `ui`\n\nUsed by 3 pages which share the same JS code, but the HTML template is different for each respective purpose.\n\n1. `notification.html`\n\n   Triggered by the dapp to request the user's permission.\n\n2. `index.html`\n\n   Opened in a browser tab for a better user interaction experience.\n\n3. `popup.html`\n\n   Shown when the user clicks the extension icon to the right of the address bar.\n\n## Thanks\n\nThanks to contributions from the MetaMask team to the browser extension wallet community, Rabby uses (or forks) them to make Rabby better.\n\n## Other Docs\n\n- [How to add a new translation to Rabby](\u002Fdocs\u002Ftranslation.md)\n","Rabby Wallet 是一款为以太坊及所有EVM链设计的开源浏览器插件钱包，旨在为用户提供更易用且安全的多链体验。其核心功能包括支持多种区块链网络、与DApp无缝集成以及提供简洁直观的操作界面。采用TypeScript开发，确保了代码质量和安全性。适用于需要频繁进行跨链操作或参与DeFi生态系统的用户，特别是那些希望在不牺牲安全性的前提下简化管理多个加密货币资产过程的人士。通过简单地调整UI即可轻松将Rabby Wallet集成到现有DApp中，几乎无需额外开发成本。",2,"2026-06-11 03:29:11","top_topic"]