{"type": "project", "title": "web3swift", "logoImg": "bafybeibnguyv4ykek3fh6ur7y7uprnzkkh4vt2hr2aivxeu53p4lhu7pie", "website": "https://github.com/web3swift-team/web3swift/", "bannerImg": "bafybeig4mswudhxo7rlpi2urdvukjmflj6zte5vswf26j5svcuropens3e", "createdAt": 1673625029803, "userGithub": "skywinder", "credentials": {"twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..SGuqzs1mMjhjsECevM4THSkoD2ezkhIxQBwM3wC2xz2cscla7SKPUzeYXJdqP6pDpTWYTd27DWGdKYoFrJcQDg", "type": "Ed25519Signature2018", "created": "2023-01-13T15:44:11.488Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2023-01-13T15:44:11.488Z", "expirationDate": "2023-04-13T15:44:11.488Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x6A3738c6299f45c31697aceA647D49EdCC9C28A4", "hash": "v0.0.0:m7yma7D5vBv1jkpAU9l9Xs413wHm+R9R3c8UlN+A7GA=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#skywinder"}}}, "description": "A full-featured native iOS/macOS library that provides Web3 functionality in Swift with native ABI parsing and smart contract interactions on the Ethereum network.\n\nWe are working on a universal library that provides web3 functionalities in Swift language so that developers can build full-featured native dApps on the Mac/iOS ecosystem. \n\nDevelopers can find out-of-box functionalities that they usually need in our library, such as web3 web view kit, ABI parsing and decoding, smart contract interactions, etc. Moreover, since Swift allows compilation to WebAssembly, the library also supports WebAssembly. This allows iOS/MacOS developers to work in their native interfaces. As a result, the library greatly improves developer productivity, and helps fulfill the vision of decentralized applications.\n\nThere are several other open-source projects in the field of web3swift, such as [Web3 (0.4.1)](https://github.com/Boilertalk/Web3.swift), [Web3Swift.io](https://github.com/zeriontech/Web3Swift), [web3swift.pod](https://github.com/bankex/web3swift), etc. But in terms of the technologies adopted, our library is yet the most advanced one tha\u3119 most of them, since we have full support of such features as **TxPool, ENS, event loops, etc**. Our library is therefore more widely used by the community.\n\n\nWe provide the community with **convenient tools** to work with Ethereum blockchain in Swift. Developers can therefore attain the ability to **quickly create secure decentralized applications** for Apple devices, without studying cryptography beforehand. This allows developers to focus on the content quality and UX/UI in DApps, which in turn **increases the adoption** of Ethereum blockchain and facilitates community growth.\n\nThe library was an essential part in several winning projects at ETHBerlin2018 and ETHDenver2019. We made it possible to work with Ethereum from mobile devices. Nowdays, our library is one of the most used iOS/MacOS libraries for Ethereum, and it was used in almost all ETH-related hackhathons.\n\nOur project is in great demand, more than 10 dApps have been using our [codes in production](https://github.com/matter-labs/web3swift#projects-that-are-using-web3swift), such as [Loopring](https://github.com/Loopring/loopr-ios?files=1), [PeepETH](https://github.com/matter-labs/PeepethClient), [ENSWallet](https://github.com/barrasso/enswallet), and many others. We have [more than 1000 references](https://github.com/search?p=4&amp;q=pod+%27web3swift%27&amp;type=Code) in GitHub.\n\nAs the library is so popular, our users also keep pushing for updates. There are  [several new features requests (25 open issues for now)](https://github.com/matter-labs/web3swift/issues). But since this is the team's open-source side project, we can&#39;t spend the money we raised with Matter Labs to support it, especially when it&#39;s unrelated to the main goal of Matter Labs: To scale Ethereum.\n\nWe already put in a vast amount of work to support the most used functionalities, including the following:\n\n- \u26a1 Swift implementation of [web3.js](https://github.com/ethereum/web3.js/) functionality\n- \ud83d\udcad Interaction with remote node via **JSON RPC**\n- \ud83d\udd10 Local **keystore management** (geth compatible)\n- \ud83e\udd16 Smart-contract **ABI parsing**\n- \ud83d\udd13 **ABI deconding** (V2 is supported with return of structures from public functions. Part of 0.4.22 Solidity compiler)\n- \ud83d\udd78 **(ENS) support** - a secure &amp; decentralised way to address resources both on and off the blockchain using simple, human-readable names\n- \ud83d\udd04 **Smart contracts interactions** (read/write)\n- \u26e9 **Infura support** , partial Websockets API support\n- \u2692 **Parsing TxPool** content into native values (ethereum addresses and transactions) - easy to get pending transactions\n- \ud83d\udd87 **Event loops** functionality\n- \ud83d\udcf1 Supports Web3View functionality (WKWebView with **injected &quot;web3&quot; provider** )\n- \ud83d\udd75\ufe0f\u200d\u2642\ufe0f Possibility to **add or remove &quot;middleware&quot; that intercepts** , modifies and even **cancel transaction** workflow on stages \"before assembly\", \"after assembly\"and \"before submission\"\n- \u2705 **Literally following the standards** (BIP, EIP, etc):\n\n    - [**BIP32**](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) **(HD Wallets),**[**BIP39**](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) **(Seed phrases),**[**BIP44**](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) **(Key generation prefixes)**\n  - [**EIP-20**](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md) (Standart interface for tokens - ERC-20), [**EIP-67**](https://github.com/ethereum/EIPs/issues/67) (Standard URI scheme), [**EIP-155**](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md) (Replay attacks protection)\n\n    - **And many others** _(For details about this EIP&#39;s look at [Documentation page](https://github.com/matter-labs/web3swift/blob/master/Documentation/))_: EIP-681, EIP-721, EIP-165, EIP-777, EIP-820, EIP-888, EIP-1400, EIP-1410, EIP-1594, EIP-1643, EIP-1644, EIP-1633, EIP-721, EIP-1155, EIP-1376\n- \ud83d\udddc **Batched requests** in concurrent mode\n\n- **RLP encoding** Base58 encoding scheme support\n", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "", "projectTwitter": "skywinder"}
web3swift
A full-featured native iOS/macOS library that provides Web3 functionality in Swift with native ABI parsing and smart contract interactions on the Ethereum network.

We are working on a universal library that provides web3 functionalities in Swift language so that developers can build full-featured native dApps on the Mac/iOS ecosystem. 

Developers can find out-of-box functionalities that they usually need in our library, such as web3 web view kit, ABI parsing and decoding, smart contract interactions, etc. Moreover, since Swift allows compilation to WebAssembly, the library also supports WebAssembly. This allows iOS/MacOS developers to work in their native interfaces. As a result, the library greatly improves developer productivity, and helps fulfill the vision of decentralized applications.

There are several other open-source projects in the field of web3swift, such as [Web3 (0.4.1)](https://github.com/Boilertalk/Web3.swift), [Web3Swift.io](https://github.com/zeriontech/Web3Swift), [web3swift.pod](https://github.com/bankex/web3swift), etc. But in terms of the technologies adopted, our library is yet the most advanced one thaㄙ most of them, since we have full support of such features as **TxPool, ENS, event loops, etc**. Our library is therefore more widely used by the community.


We provide the community with **convenient tools** to work with Ethereum blockchain in Swift. Developers can therefore attain the ability to **quickly create secure decentralized applications** for Apple devices, without studying cryptography beforehand. This allows developers to focus on the content quality and UX/UI in DApps, which in turn **increases the adoption** of Ethereum blockchain and facilitates community growth.

The library was an essential part in several winning projects at ETHBerlin2018 and ETHDenver2019. We made it possible to work with Ethereum from mobile devices. Nowdays, our library is one of the most used iOS/MacOS libraries for Ethereum, and it was used in almost all ETH-related hackhathons.

Our project is in great demand, more than 10 dApps have been using our [codes in production](https://github.com/matter-labs/web3swift#projects-that-are-using-web3swift), such as [Loopring](https://github.com/Loopring/loopr-ios?files=1), [PeepETH](https://github.com/matter-labs/PeepethClient), [ENSWallet](https://github.com/barrasso/enswallet), and many others. We have [more than 1000 references](https://github.com/search?p=4&amp;q=pod+%27web3swift%27&amp;type=Code) in GitHub.

As the library is so popular, our users also keep pushing for updates. There are  [several new features requests (25 open issues for now)](https://github.com/matter-labs/web3swift/issues). But since this is the team's open-source side project, we can&#39;t spend the money we raised with Matter Labs to support it, especially when it&#39;s unrelated to the main goal of Matter Labs: To scale Ethereum.

We already put in a vast amount of work to support the most used functionalities, including the following:

- ⚡ Swift implementation of [web3.js](https://github.com/ethereum/web3.js/) functionality
- 💭 Interaction with remote node via **JSON RPC**
- 🔐 Local **keystore management** (geth compatible)
- 🤖 Smart-contract **ABI parsing**
- 🔓 **ABI deconding** (V2 is supported with return of structures from public functions. Part of 0.4.22 Solidity compiler)
- 🕸 **(ENS) support** - a secure &amp; decentralised way to address resources both on and off the blockchain using simple, human-readable names
- 🔄 **Smart contracts interactions** (read/write)
- ⛩ **Infura support** , partial Websockets API support
- ⚒ **Parsing TxPool** content into native values (ethereum addresses and transactions) - easy to get pending transactions
- 🖇 **Event loops** functionality
- 📱 Supports Web3View functionality (WKWebView with **injected &quot;web3&quot; provider** )
- 🕵️‍♂️ Possibility to **add or remove &quot;middleware&quot; that intercepts** , modifies and even **cancel transaction** workflow on stages "before assembly", "after assembly"and "before submission"
- ✅ **Literally following the standards** (BIP, EIP, etc):

    - [**BIP32**](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) **(HD Wallets),**[**BIP39**](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) **(Seed phrases),**[**BIP44**](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) **(Key generation prefixes)**
  - [**EIP-20**](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md) (Standart interface for tokens - ERC-20), [**EIP-67**](https://github.com/ethereum/EIPs/issues/67) (Standard URI scheme), [**EIP-155**](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md) (Replay attacks protection)

    - **And many others** _(For details about this EIP&#39;s look at [Documentation page](https://github.com/matter-labs/web3swift/blob/master/Documentation/))_: EIP-681, EIP-721, EIP-165, EIP-777, EIP-820, EIP-888, EIP-1400, EIP-1410, EIP-1594, EIP-1643, EIP-1644, EIP-1633, EIP-721, EIP-1155, EIP-1376
- 🗜 **Batched requests** in concurrent mode

- **RLP encoding** Base58 encoding scheme support

web3swift