From 9e5a29ff424c27f3a69b6ef84f64d0d3912646af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9Crtomas=E2=80=9C?= <“rtomas@gmail.com”>
Date: Wed, 13 Mar 2024 12:13:26 -0300
Subject: [PATCH 01/10] fix a link in microsoft oauth Guide
---
src/pages/guides/microsoft-oauth.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pages/guides/microsoft-oauth.mdx b/src/pages/guides/microsoft-oauth.mdx
index c53014b2a..a550a44f5 100644
--- a/src/pages/guides/microsoft-oauth.mdx
+++ b/src/pages/guides/microsoft-oauth.mdx
@@ -22,7 +22,7 @@ import SEO from "@site/src/components/SEO";
This guide will cover the basics of how to integrate Web3Auth with OAuth 2.0, using Microsoft Github authentication. Trying to explain all the flow
and covering all the problems that can happen during the integration. Web3Auth is employed to provide Ethereum private key access and public address.
-Full example: https://github.com/web3auth/web3auth-byoa/microsoft-oauth-connection
+Full example: https://github.com/Web3Auth/web3auth-pnp-examples/tree/main/web3auth-byoa/microsoft-oauth-connection
We use two web3auth libraries in this project: `@web3auth/ethereum-provider` and `@web3auth/node-sdk`.
From 7be5959f66121c7dcbbad5e0f39e2dfaeecba973 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9Crtomas=E2=80=9C?= <“rtomas@gmail.com”>
Date: Wed, 13 Mar 2024 12:13:47 -0300
Subject: [PATCH 02/10] add multichain guide and header image
---
src/pages/guides/pnp-no-modal-multichain.mdx | 265 +++++++++++++++++++
static/guides/banners/multi.png | Bin 0 -> 158857 bytes
2 files changed, 265 insertions(+)
create mode 100644 src/pages/guides/pnp-no-modal-multichain.mdx
create mode 100644 static/guides/banners/multi.png
diff --git a/src/pages/guides/pnp-no-modal-multichain.mdx b/src/pages/guides/pnp-no-modal-multichain.mdx
new file mode 100644
index 000000000..2618f63b1
--- /dev/null
+++ b/src/pages/guides/pnp-no-modal-multichain.mdx
@@ -0,0 +1,265 @@
+---
+title: Creating a Multichain Connection with Web3Auth and React PnP no-modal SDK
+image: "guides/banners/multi.png"
+description: Learn how to connect to different blockchain using Web3Auth.
+type: guide
+tags: [multichain, polkadot, evm, cosmos, no-modal]
+date: Febreaury 9, 2024
+author: Web3Auth Team
+order: 1
+communityPortalTopicId:
+---
+
+import SEO from "@site/src/components/SEO";
+
+
+
+import Web3AuthPrerequisites from "@site/src/common/guides/_web3auth-prerequisites.mdx";
+import SetupWeb3AuthDashboard from "@site/src/common/guides/_setup-web3auth-dashboard.mdx";
+import SetupBaseProject from "@site/src/common/guides/_setup-base-project.mdx";
+
+This guide will cover the basics of how to integrate Web3Auth with different blockchains at the same time. In this demo you will be able to
+authenticate with different social logins and different addresses from each blockchain. Of course, you can interact and sign transactions with any of
+them.
+
+You will be able to make calls like get the user's `account`, fetch `balance`, `sign transaction`, `send transaction`, `read` from and `write` to
+smart contracts, etc.
+
+**The Web3Auth Web SDK supports all blockchains that follow the `secp256k1` & `ed25519` curves**. This includes all EVM like (Ethereum, Polygon
+Binance Smart Chain, etc) and non-EVM like (Aptos, Cosmos, Polkadot, Solana, Tezos, etc) blockchains.
+
+:::note
+
+This reference is for the `Web`, but you can use all the blockchains on `Android`, `iOS`, `React Native`, `Flutter`, `Unity` & `Unreal` as well.
+Please follow our reference for [Ethereum](https://web3auth.io/docs/connect-blockchain/evm/ethereum), and similarly use corresponding blockchain
+libraries that support the platforms to use the private key and make blockchain calls accordingly.
+
+:::
+
+## Quick Start
+
+```bash
+npx degit Web3Auth/web3auth-pnp-examples/web-no-modal-sdk/blockchain-connection-examples/multi-chain-no-modal-example/ w3a-multi-chain-no-modal-demo && cd w3a-multi-chain-no-modal-demo && npm install && npm run start
+```
+
+## Prerequisites
+
+
+
+## Setup your Web3Auth Dashboard
+
+
+
+## Using the Web3Auth Plug and Play No Modal SDK
+
+To use the Web3Auth Plug and Play No Modal SDK, you need to add the dependency of the respective platform SDK of Web3Auth to your project. To learn
+more about the available SDKs, please have a look at this [documentation page](/sdk).
+
+For the purpose of this guide, we will discuss the [Web3Auth Plug and Play No Modal SDK](/sdk/pnp/web/no-modal) and the different blockchain
+providers.
+
+
+
+### Installation
+
+We need many dependencies to make this work::
+
+```bash
+npm install @web3auth/base @web3auth/no-modal @web3auth/openlogin-adapter @web3auth/ethereum-provider @web3auth/solana-provider @polkadot/api @polkadot/util-crypto @taquito/signer @taquito/taquito @taquito/utils @tezos-core-tools/crypto-utils @starkware-industries/starkware-crypto-utils web3 ethers
+```
+
+#### Instantiating Web3Auth
+
+Import the required modules for web3auth and any providers you want to use.
+
+```tsx
+import { Web3AuthNoModal } from "@web3auth/no-modal";
+import { OpenloginAdapter } from "@web3auth/openlogin-adapter";
+import { IProvider, WALLET_ADAPTERS } from "@web3auth/base";
+import { EthereumPrivateKeyProvider } from "@web3auth/ethereum-provider";
+import { web3AuthConfig, openloginAdapterConfig } from "./config/web3auth";
+
+// EVM
+import Web3 from "web3";
+// Solana
+import { SolanaPrivateKeyProvider, SolanaWallet } from "@web3auth/solana-provider";
+// Tezos
+//@ts-ignore
+import * as tezosCrypto from "@tezos-core-tools/crypto-utils";
+import { hex2buf } from "@taquito/utils";
+// StarkEx and StarkNet
+//@ts-ignore
+import { ec } from "@starkware-industries/starkware-crypto-utils";
+// Polkadot
+import { Keyring } from "@polkadot/api";
+import { cryptoWaitReady } from "@polkadot/util-crypto";
+```
+
+Call `init` when the app is loads, it will initialize the Web3Auth instance . Also don't forget to propertly configure the `clientId`,
+`web3AuthConfig` and `openloginAdapterConfig` objects in the `config` directory.
+
+```tsx
+const init = async () => {
+ try {
+ const web3auth = new Web3AuthNoModal(web3AuthConfig);
+ setWeb3auth(web3auth);
+
+ const openloginAdapter = new OpenloginAdapter(openloginAdapterConfig);
+ web3auth.configureAdapter(openloginAdapter);
+
+ await web3auth.init();
+
+ setProvider(web3auth.provider);
+ if (web3auth.connected) {
+ setLoggedIn(true);
+ }
+ } catch (error) {
+ console.error(error);
+ }
+};
+```
+
+### Login with Web3Auth
+
+You must call this function to start the login process. You can change the `loginProvider` to any of the
+[available social logins](https://web3auth.io/docs/sdk/pnp/web/adapters/openlogin#loginsettings).
+
+```tsx
+const web3authProvider = await web3auth.connectTo(WALLET_ADAPTERS.OPENLOGIN, {
+ loginProvider: "google",
+});
+```
+
+### Get Public Address from different blockchains
+
+For each blockchain you want to connect to, you need to call the `getAddress` function and with the private key, we will generate the public address.
+
+## EVM (Polygon mumbai testnet)
+
+```tsx
+const rpc = new RPC(provider);
+const privateKey = await rpc.getPrivateKey();
+
+const polygonPrivateKeyProvider = new EthereumPrivateKeyProvider({
+ config: {
+ chainConfig: {
+ chainNamespace: CHAIN_NAMESPACES.EIP155,
+ chainId: "0x13881",
+ rpcTarget: "https://rpc.ankr.com/polygon_mumbai",
+ displayName: "Polygon Mumbai",
+ blockExplorerUrl: "https://mumbai.polygonscan.com/",
+ ticker: "MATIC",
+ tickerName: "MATIC",
+ logo: "https://cryptologos.cc/logos/polygon-matic-logo.png",
+ },
+ },
+});
+await polygonPrivateKeyProvider.setupProvider(privateKey);
+const web3 = new Web3(polygonPrivateKeyProvider);
+const address = (await web3.eth.getAccounts())[0];
+return address;
+```
+
+## Solana
+
+```tsx
+const rpc = new RPC(provider);
+const privateKey = await rpc.getPrivateKey();
+
+const { getED25519Key } = await import("@toruslabs/openlogin-ed25519");
+const ed25519key = getED25519Key(privateKey).sk.toString("hex");
+
+// Get user's Solana's public address
+const solanaPrivateKeyProvider = new SolanaPrivateKeyProvider({
+ config: {
+ chainConfig: {
+ chainNamespace: CHAIN_NAMESPACES.SOLANA,
+ chainId: "0x3",
+ rpcTarget: "https://api.devnet.solana.com",
+ displayName: "Solana Mainnet",
+ blockExplorerUrl: "https://explorer.solana.com/",
+ ticker: "SOL",
+ tickerName: "Solana",
+ logo: "",
+ },
+ },
+});
+await solanaPrivateKeyProvider.setupProvider(ed25519key);
+console.log(solanaPrivateKeyProvider.provider);
+
+const solanaWallet = new SolanaWallet(solanaPrivateKeyProvider.provider as any);
+const solana_address = await solanaWallet.requestAccounts();
+return "0x" + solana_address[0];
+```
+
+## Tezos
+
+```tsx
+const rpc = new RPC(provider);
+const privateKey = await rpc.getPrivateKey();
+const keyPairTezos = tezosCrypto.utils.seedToKeyPair(hex2buf(privateKey));
+const address = "0x" + keyPairTezos?.pkh;
+return address;
+```
+
+## StarkEx and StarkNet
+
+```tsx
+const rpc = new RPC(provider);
+const privateKey = await rpc.getPrivateKey();
+const keyPairStarkEx = ec.keyFromPrivate(privateKey, "hex");
+const starkex_account = ec.keyFromPublic(keyPairStarkEx.getPublic(true, "hex"), "hex");
+const address = "0x" + starkex_account.pub.getX().toString("hex");
+return address;
+```
+
+## Polkadot
+
+```tsx
+await cryptoWaitReady();
+const rpc = new RPC(provider);
+const privateKey = (await rpc.getPrivateKey()) as string;
+const keyring = new Keyring({ ss58Format: 42, type: "sr25519" });
+
+const keyPair = keyring.addFromUri("0x" + privateKey);
+const address = "0x" + keyPair.address;
+return address;
+```
+
+### Get all the public wallets
+
+As you can see in the full example, we get the public address from each blockchain. In this case, It's clear that you can interact with different
+blockchains at the same time.
+
+And in Web3auth we have
+[several examples](https://github.com/Web3Auth/web3auth-pnp-examples/tree/main/web-no-modal-sdk/blockchain-connection-examples) of how to interact
+with [any blockchain](https://web3auth.io/docs/connect-blockchain#mpc-providers).
+
+We also have some examples of how to interact with Cosmos, Aptos, Algorand and XRPL.
+
+### Conclusion
+
+This guide has walked you through the seamless process of creating a multichain connection using Web3Auth and the React PnP no-modal SDK. By
+integrating Web3Auth, developers are empowered to build applications that are not only blockchain agnostic but also user-friendly, leveraging social
+logins for authentication across multiple blockchains.
+
+The provided examples and code snippets have shown how to initialize Web3Auth, configure adapters, and retrieve public addresses for different
+blockchains, highlighting the flexibility and power of Web3Auth in handling diverse blockchain technologies. With this knowledge, developers can now
+extend their applications to support a wide range of blockchains.
+
+As the blockchain ecosystem continues to evolve, tools like Web3Auth will play a crucial role in simplifying access and interaction with blockchain
+technologies.
+
+If you want to interact with a specific blockchain and you are having trouble with the code, pleaes contact us in our
+[community](https://web3auth.io/community/).
+
+### References
+
+- https://web3auth.io/docs/sdk/pnp/web/no-modal/
+- https://web3auth.io/docs/sdk/helper-sdks/providers/
+- https://web3auth.io/docs/examples?product=Plug+and+Play&sdk=Plug+and+Play+Web+Modal+SDK
diff --git a/static/guides/banners/multi.png b/static/guides/banners/multi.png
new file mode 100644
index 0000000000000000000000000000000000000000..facc3acf1bdc2abedc07669c6881eeb955189cc7
GIT binary patch
literal 158857
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
)MKLy6aEAc8_6EdCq0)TP2
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
PeZ|QHzxM_=gWa@neth1Eiw#$!MD
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