{"id":22416294,"url":"https://github.com/bunsdev/multibridge-ui","last_synced_at":"2025-03-27T04:19:46.808Z","repository":{"id":107391468,"uuid":"417026715","full_name":"BunsDev/multibridge-UI","owner":"BunsDev","description":null,"archived":false,"fork":false,"pushed_at":"2023-11-18T08:17:53.000Z","size":7432,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T09:29:23.667Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"multibridge-ui.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BunsDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-10-14T07:12:32.000Z","updated_at":"2021-10-14T18:17:50.000Z","dependencies_parsed_at":"2023-05-23T22:45:12.127Z","dependency_job_id":null,"html_url":"https://github.com/BunsDev/multibridge-UI","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BunsDev%2Fmultibridge-UI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BunsDev%2Fmultibridge-UI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BunsDev%2Fmultibridge-UI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BunsDev%2Fmultibridge-UI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BunsDev","download_url":"https://codeload.github.com/BunsDev/multibridge-UI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245779485,"owners_count":20670688,"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","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":[],"created_at":"2024-12-05T15:15:38.014Z","updated_at":"2025-03-27T04:19:46.777Z","avatar_url":"https://github.com/BunsDev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# multichain.xyz\n\n\n\n# Deploying your own cross-chain token 101\n\n## Prerequisites\n\n* Token \u0026 Logo data available on [coingecko.com](https://www.coingecko.com/en)\n\n## Step 1: Fork AnyswapV4ERC20 and implement any additional functionality as required.\n\nAnyswapV4ERC20 supports the following\n* ERC2612 (Adds `permit`)\n* ERC677 (Adds `approveAndCall` and `transferAndCall`)\n* `transferWithPermit`\n* Verify EIP712 and Verify `personalSign`\n* AnyswapV4ERC20 needs to support `mint`, `burn`, `Swapin`, and `Swapout` to be compatible with multiple bridges.\n* Multichain MPC address (detailed below) should be set via `initVault(address _vault)`\n\n### Step 1.1: I already deployed my token\n\nDeploy a wrapper for your token that supports `mint`, `burn`, `Swapin`, and `Swapout`, add this wrapper as a minter role in the ACL. In the wrapper add the MPC address (found below) as a minter\n\n## Step 2: Deploy AnyswapV4ERC20 via AnyswapCREATE2\n\nAnyswapCREATE2 is available on Ethereum, Fantom, Binance Smart Chain, xDAI, and Matic. More deployments to follow\n\nAddress: 0x54f5a04417e29ff5d7141a6d33cb286f50d5d50e\n\n```\ngit clone https://github.com/connext/chaindata.git\nnpm install\n-- edit deploy.js\nnode deploy.js\n```\n\nEdit lines 39 to 55\n\n```\nprovider ~ choose from provider list for the chain\nprivateKey ~ address being used to deploy with\nmpcAddress ~ address for MPC address on given chain\nconstructorArgs ~ token details (Token Name, Symbol, Decimals, Underlying token (optional))\nverifyURL (optional) if you want to programmatically verify via etherscan/ftmscan/bscscan api\nverifykey (optional) key to be used to verify via etherscan/ftmscan/bscscan\n```\n\nDeploy with the same code and salt to all the chains you wish to have your token on.\n\n**NOTE** if you prefer to manually deploy, be sure to immediately call initVault(address _mpc) on the contract, as the default owner should be set to the deployer so the code matches on all deployments. Not even the constructor arguments should change on cross-chain deployments\n\n## Step 3: Verify your contract on each individual chain (optional if deploy.js was not used)\n\nVerify via;\n\n* [Ethereum](https://etherscan.io/)\n* [Binance Smart Chain](https://bscscan.com/)\n* [Fantom](https://ftmscan.com/)\n* [xDAI](https://blockscout.com/poa/xdai)\n* [Polygon (Matic)](https://explorer-mainnet.maticvigil.com/)\n\n## Step 4: Create a PR for your token into the token registry\n\nClone the connext/chaindata repo and submit a PR to chains.json with the following format;\n\n```json\n\"yfi\": {\n  \"srcChainID\": \"1\",\n  \"destChainID\": \"56\",\n  \"PairID\": \"YFI\",\n  \"SrcToken\": {\n    \"ID\": \"YFI\",\n    \"Name\": \"yearn.finance\",\n    \"Symbol\": \"YFI\",\n    \"Decimals\": 18,\n    \"Description\": \"yearn.finance\",\n    \"DepositAddress\": \"0x13B432914A996b0A48695dF9B2d701edA45FF264\",\n    \"mpcAddress\": \"0x13B432914A996b0A48695dF9B2d701edA45FF264\",\n    \"ContractAddress\": \"0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e\",\n    \"MaximumSwap\": 20,\n    \"MinimumSwap\": 0.0005,\n    \"BigValueThreshold\": 5,\n    \"SwapFeeRate\": 0,\n    \"MaximumSwapFee\": 0,\n    \"MinimumSwapFee\": 0,\n    \"PlusGasPricePercentage\": 10,\n    \"DisableSwap\": false,\n    \"IsDelegateContract\": false\n  },\n  \"DestToken\": {\n    \"ID\": \"anyYFI\",\n    \"Name\": \"YFI-ERC20\",\n    \"Symbol\": \"anyYFI\",\n    \"Decimals\": 18,\n    \"Description\": \"cross chain bridge YFI with anyYFI\",\n    \"mpcAddress\": \"0x13B432914A996b0A48695dF9B2d701edA45FF264\",\n    \"ContractAddress\": \"0x9883ae441105f815b472517389b979f031b5c87e\",\n    \"MaximumSwap\": 20,\n    \"MinimumSwap\": 0.002,\n    \"BigValueThreshold\": 2,\n    \"SwapFeeRate\": 0.001,\n    \"MaximumSwapFee\": 0.01,\n    \"MinimumSwapFee\": 0.001,\n    \"PlusGasPricePercentage\": 1,\n    \"DisableSwap\": false,\n    \"IsDelegateContract\": false\n  }\n}\n```\n\nIf you are not sure on the chainID, you can confirm them on [chainid.network](https://chainid.network/chains.json)\nOnce the PR is accepted, the token will be merged and become available on [multichain.xyz](https://multichain.xyz/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbunsdev%2Fmultibridge-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbunsdev%2Fmultibridge-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbunsdev%2Fmultibridge-ui/lists"}