diff --git a/dictionary.txt b/dictionary.txt index a03fe51b..4001f405 100644 --- a/dictionary.txt +++ b/dictionary.txt @@ -175,6 +175,7 @@ IProjectConfig javascript JSON JsonRpcProvider +js KPIs KYB Kwame diff --git a/docs/1_chainsafe-gaming.md b/docs/1_chainsafe-gaming.md index 9c7759f7..3f98f10e 100644 --- a/docs/1_chainsafe-gaming.md +++ b/docs/1_chainsafe-gaming.md @@ -6,7 +6,7 @@ sidebar_label: ChainSafe Gaming # Introducing ChainSafe Gaming -[ChainSafe Gaming](https://gaming.chainsafe.io/?utm_source=github&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) is a complete toolkit of web3 gaming products and services for studios, developers, and players that includes our web3.unity SDK, an NFT minter, marketplaces and lootboxes. +[ChainSafe Gaming](https://gaming.chainsafe.io/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) is a complete toolkit of web3 gaming products and services for studios, developers, and players that includes our web3.unity SDK, an NFT minter, marketplaces and lootboxes. The ChainSafe Gaming docs is your portal to learn more about our products and services. @@ -14,17 +14,17 @@ The ChainSafe Gaming docs is your portal to learn more about our products and se # Web3.unity, An SDK To Bring Games To The Blockchain -Your journey in blockchain-enabled gaming begins with our SDK. We recommend you follow the package manager installation in the [getting started](https://docs.gaming.chainsafe.io/current/getting-started) section. If you'd like to see the source code repository you can do so [here](https://github.com/ChainSafe/web3.unity/releases). +Your journey in blockchain-enabled gaming begins with our SDK. We recommend you follow the package manager installation in the [getting started](https://docs.gaming.chainsafe.io/current/getting-started) section. If you'd like to see the source code repository you can do so [here](https://github.com/ChainSafe/web3.unity/releases?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). -Web3.unity is a modular open-source gaming SDK written in C# and developed by [ChainSafe Gaming](https://gaming.chainsafe.io/?utm_source=github&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). It connects games built in the Unity game engine to the blockchain. The library currently supports games built for web browsers (WebGL), iOS/Android mobile, and desktop. Web3.unity is compatible with most EVM-based chains such as Ethereum, Polygon, Avalanche, Base, Skale, Cronos, Godwoken, and Binance Smart Chain, letting developers easily choose and switch between them to create the best in-game experience. +Web3.unity is a modular open-source gaming SDK written in C# and developed by [ChainSafe Gaming](https://gaming.chainsafe.io/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). It connects games built in the Unity game engine to the blockchain. The library currently supports games built for web browsers (WebGL), iOS/Android mobile, and desktop. Web3.unity is compatible with most EVM-based chains such as Ethereum, Polygon, Avalanche, Base, Skale, Cronos, Godwoken, and Binance Smart Chain, letting developers easily choose and switch between them to create the best in-game experience. ## Features of Web3.unity Out-of-the-box, Web3.unity comes with Unity sample scripts, scenes, prefabs & tooling that will make building web3 games easier. These features include: -* In-game and [no-code](https://dashboard.gaming.chainsafe.io/nfts) NFT minting +* In-game and [no-code](https://dashboard.gaming.chainsafe.io/nfts?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) NFT minting * Voucher-based NFT minting implementation -* In-game and web [marketplaces](https://gaming.chainsafe.io/marketplace) for NFTS +* In-game and web [marketplaces](https://gaming.chainsafe.io/marketplace?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) for NFTS * Web3 wallet builds for desktop, mobile (iOS or Android), and browser games (WebGL) * Social logins * Sign & verify digital signatures @@ -49,11 +49,11 @@ public class ExampleClass : MonoBehaviour } ``` -[Click here](https://docs.gaming.chainsafe.io/current/getting-started) to open documentation for the latest version of web3.unity. +[Click here](https://docs.gaming.chainsafe.io/current/getting-started?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) to open documentation for the latest version of web3.unity. ## Supported Chains -Web3.Unity should work with any EVM based network on the blockchain. Below you'll find a list of tested and approved networks, however you can find a wider range of supported networks on [Chainlist](https://chainlist.org/): +Web3.Unity should work with any EVM based network on the blockchain. Below you'll find a list of tested and approved networks, however you can find a wider range of supported networks on [Chainlist](https://chainlist.org/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs): | Network Name | Type of Chain | Chain ID | | ------------ | ------------- | ----------- | @@ -75,12 +75,12 @@ Web3.Unity should work with any EVM based network on the blockchain. Below you'l ## Additional Resources -If you are new to web3.unity and blockchain-enabled gaming, we recommend that you read over these docs carefully. If you are new to building with the Unity game engine, the [Unity3D manual](https://docs.unity3d.com/Manual/index.html) is a great place to start as well as [learn Unity](https://learn.unity.com/). +If you are new to web3.unity and blockchain-enabled gaming, we recommend that you read over these docs carefully. If you are new to building with the Unity game engine, the [Unity3D manual](https://docs.unity3d.com/Manual/index.html?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) is a great place to start as well as [learn Unity](https://learn.unity.com/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). -* Our [Discord](https://discord.gg/zxHUgGGTGk) is an active community of game devs sharing tips and tricks with each other -* Our [Twitter](https://twitter.com/chainsafegaming) periodically provides news and updates, and shares our community's work -* Our [YouTube](https://youtube.com/chainsafe-systems) provides a set of video tutorials and how-to guides on using web3.unity: - * [Web3.Unity SDK 3.0 Tutorials](https://www.youtube.com/playlist?list=PLPn3rQCo3XrOOklu69R-G2DJypaXFmR_z) +* Our [Discord](https://discord.gg/zxHUgGGTGk?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) is an active community of game devs sharing tips and tricks with each other +* Our [Twitter](https://twitter.com/chainsafegaming?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) periodically provides news and updates, and shares our community's work +* Our [YouTube](https://youtube.com/chainsafe-systems?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) provides a set of video tutorials and how-to guides on using web3.unity: + * [Web3.Unity SDK 3.0 Tutorials](https://www.youtube.com/playlist?list=PLPn3rQCo3XrOOklu69R-G2DJypaXFmR_z&utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) ## Contribute @@ -88,6 +88,6 @@ All contributions are welcomed! The web3.unity docs is intended to be a living d Please use GitHub Issues to propose any large changes and to facilitate discussion and questions regarding content and structure. -It is recommended you review the [Docusaurus docs](https://docusaurus.io/docs) to ensure you utilize its features correctly. +It is recommended you review the [Docusaurus docs](https://docusaurus.io/docs?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) to ensure you utilize its features correctly. After making a PR, you can validate your proposed changes by clicking on the `View deployment` link in the `Checks` section. diff --git a/docs/nft_launchpad/1_introduction.md b/docs/nft_launchpad/1_introduction.md index dbe8be69..275e277b 100644 --- a/docs/nft_launchpad/1_introduction.md +++ b/docs/nft_launchpad/1_introduction.md @@ -15,6 +15,6 @@ Game Developers can create, manage and visualize NFTs through the dashboard with ### Ready To Get Started? -Head over to the [NFT Launchpad Dashboard](https://dashboard.gaming.chainsafe.io/nfts/entry) to manage your collections and mint NFTs for your projects. +Head over to the [NFT Launchpad Dashboard](https://dashboard.gaming.chainsafe.io/nfts/entry?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) to manage your collections and mint NFTs for your projects. Follow the guide to know more about how to interact with the NFT Launchpad and mint NFTs for your projects. \ No newline at end of file diff --git a/docs/nft_launchpad/2_details.md b/docs/nft_launchpad/2_details.md index 83a507dd..130beaaa 100644 --- a/docs/nft_launchpad/2_details.md +++ b/docs/nft_launchpad/2_details.md @@ -11,7 +11,7 @@ of the section, you will have a clear understanding of the NFT Launchpad hierarc ### Project -A project can be considered as a game. When you create a new game, you create a project for that game on chainsafe [Gaming Dashboard](https://dashboard.gaming.chainsafe.io/dashboard). +A project can be considered as a game. When you create a new game, you create a project for that game on chainsafe [Gaming Dashboard](https://dashboard.gaming.chainsafe.io/dashboard?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). A project is the first level of hierarchy in the chainsafe gaming ecosystem. Anything you will create in the gaming ecosystem will be under a project. You can create multiple collections and mint NFTs under a project. @@ -29,7 +29,7 @@ You can mint NFTs for a collection and link them to your game. An NFT is a third A collection can have multiple NFTs under the collection. An NFT can be a character, weapon, skin, or any other asset you want to link to your game. Gamers can trade, sell, or buy NFTs in the game. -Currently, we are supporting ERC721 and ERC1155 token standards. NFT metadata is uploaded to [ChainSafe Storage](https://storage.chainsafe.io/) powered by IPFS. +Currently, we are supporting ERC721 and ERC1155 token standards. NFT metadata is uploaded to [ChainSafe Storage](https://storage.chainsafe.io/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) powered by IPFS. You can add custom attributes to your NFTs, which can be utilized in your game. For example, you can add attributes like `power`, `speed` and `health` to a character NFT. You can also add custom images to your NFTs. @@ -42,7 +42,7 @@ Usually, digital assets are identified just by their Token ID. Metadata adds ext You can add custom attributes to your NFTs, which can be utilized in the game. For example, you can add attributes like `power`, `speed` and `health` to a character NFT as metadata fields. -We store the metadata of the NFTs on [ChainSafe Storage](https://storage.chainsafe.io/) which is powered by IPFS. We store the IPFS CID +We store the metadata of the NFTs on [ChainSafe Storage](https://storage.chainsafe.io/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) which is powered by IPFS. We store the IPFS CID of the metadata on-chain. The metadata is stored in a JSON format and can be accessed using the IPFS CID via any public IPFS gateway. ### Supported Chains @@ -55,4 +55,4 @@ You can currently create collections and mint NFTs for the following chains: | Polygon Mumbai | Testnet | 80001 | | BSC | Testnet | 97 | | Avalanche | Testnet | 43113 | - +| B3 Sepolia | Testnet | 1993 | \ No newline at end of file diff --git a/docs/nft_launchpad/3_tutorial.md b/docs/nft_launchpad/3_tutorial.md index dade5853..60b39288 100644 --- a/docs/nft_launchpad/3_tutorial.md +++ b/docs/nft_launchpad/3_tutorial.md @@ -12,7 +12,7 @@ This tutorial will guide you through the process of creating a collection, minti Before you begin, ensure you have the following: -- A project created for your game. If you don't have one, you can create one [here](https://dashboard.gaming.chainsafe.io/dashboard). +- A project created for your game. If you don't have one, you can create one [here](https://dashboard.gaming.chainsafe.io/dashboard?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). - Connect your wallet to the ChainSafe Gaming Dashboard. You can connect your wallet by clicking on the `Connect Wallet` button on the top right corner of the dashboard. @@ -22,7 +22,7 @@ Before you begin, ensure you have the following: You can skip this step if you already have a project created for your game. ::: -- Go to the [ChainSafe Gaming Dashboard](https://dashboard.gaming.chainsafe.io/dashboard) and click on the `+` button on the top right. +- Go to the [ChainSafe Gaming Dashboard](https://dashboard.gaming.chainsafe.io/dashboard?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) and click on the `+` button on the top right. - Fill in the details for your project and click on `Create Project` button. @@ -30,7 +30,7 @@ You can skip this step if you already have a project created for your game. ## 2. Create a Collection -- Head over to `NFT Launchpad` tab in the [ChainSafe Gaming Dashboard](https://dashboard.gaming.chainsafe.io/nfts/entry). +- Head over to `NFT Launchpad` tab in the [ChainSafe Gaming Dashboard](https://dashboard.gaming.chainsafe.io/nfts/entry?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). - Select the project you want to create a collection for. diff --git a/docs/nft_marketplace/1_introduction.md b/docs/nft_marketplace/1_introduction.md index 54aab13e..0956d0b3 100644 --- a/docs/nft_marketplace/1_introduction.md +++ b/docs/nft_marketplace/1_introduction.md @@ -23,4 +23,4 @@ in one marketplace at a time. Our marketplace tool kit supports Ethereum, Polygo ### Ready To Get Started? -Head over to the [NFT Marketplace Dashboard](https://dashboard.gaming.chainsafe.io/marketplaces/entry) to manage your marketplace and list NFTs for your projects. +Head over to the [NFT Marketplace Dashboard](https://dashboard.gaming.chainsafe.io/marketplaces/entry?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) to manage your marketplace and list NFTs for your projects. diff --git a/docs/nft_marketplace/2_tutorial.md b/docs/nft_marketplace/2_tutorial.md index 169d0f8e..c29bfa9d 100644 --- a/docs/nft_marketplace/2_tutorial.md +++ b/docs/nft_marketplace/2_tutorial.md @@ -12,9 +12,9 @@ This guide will help you to create an on-chain marketplace for your game and lis Before you begin, ensure you have the following: -- A project created for your game. If you don't have one, you can create one [here](https://dashboard.gaming.chainsafe.io/dashboard). +- A project created for your game. If you don't have one, you can create one [here](https://dashboard.gaming.chainsafe.io/dashboard?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). -- You should have already created some nfts for your game inside of the project. If you haven't, you can create some [here](https://dashboard.gaming.chainsafe.io/nfts/entry). +- You should have already created some nfts for your game inside of the project. If you haven't, you can create some [here](https://dashboard.gaming.chainsafe.io/nfts/entry?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). - Connect your wallet to the ChainSafe Gaming Dashboard. You can connect your wallet by clicking on the `Connect Wallet` button on the top right corner of the dashboard. @@ -73,7 +73,9 @@ Once you have created a marketplace, its time to list some NFTs for sale in the ## 4. Use marketplace inside of your Unity game Add the Chainsafe marketplace package as a git package: -`https://github.com/ChainSafe/web3.unity.git?path=/Packages/io.chainsafe.web3-unity.marketplace` +```js +https://github.com/ChainSafe/web3.unity.git?path=/Packages/io.chainsafe.web3-unity.marketplace +``` Add Marketplace Service Adapter to the Web3Unity prefab ![](./assets/marketplace_sample.png) diff --git a/docs/v2.6/10_voucher-minting-nfts.md b/docs/v2.6/10_voucher-minting-nfts.md index 393d43a1..d0255dbe 100644 --- a/docs/v2.6/10_voucher-minting-nfts.md +++ b/docs/v2.6/10_voucher-minting-nfts.md @@ -13,13 +13,13 @@ This pages explains minting an NFT using ECDSA with solidity as a voucher to aut ::: ## Minting an NFT Via The Marketplace -NFTs can easily be minted via our marketplace [here](https://marketplace.chainsafe.io/) These NFTs follow ERC standards and be used with our all NFT calls without much hassle at all. Simply add your NFT details, an image and away you go! +NFTs can easily be minted via our marketplace [here](https://marketplace.chainsafe.io/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) These NFTs follow ERC standards and be used with our all NFT calls without much hassle at all. Simply add your NFT details, an image and away you go! ## Minting an NFT In Game Via ECDSA Verification We've decided to move away from server voucher minting and replace it with ECDSA verification. This is a lot easier to setup and maintain as it's done solidity side and can be controlled solely by the developer for their users. For examples sake we've included an ERC20 private key to show you how it all works. Please do not use this in production. You can get your own key from your metamask account settings to replace the example one. It is entirely up to you how you would like to secure this key. Please do not send an app into production without locking this down properly. As there are many ways to secure this we've decided to leave this up to you as any methods we offer would undoubtedly be reverse engineered. ## What Is ECDSA? -ECDSA stands for elliptical curve digital signature algorithm. It is the process of reverse engineering a signature to check which wallet it originated from. This way you can place a private key within the game files and make it fire off a signature whenever you need something authorized. This can be anything from allowing a claim to minting NFTs, the possibilities are endless. More information can be found [here](https://cryptobook.nakov.com/digital-signatures/ecdsa-sign-verify-messages) +ECDSA stands for elliptical curve digital signature algorithm. It is the process of reverse engineering a signature to check which wallet it originated from. This way you can place a private key within the game files and make it fire off a signature whenever you need something authorized. This can be anything from allowing a claim to minting NFTs, the possibilities are endless. More information can be found [here](https://cryptobook.nakov.com/digital-signatures/ecdsa-sign-verify-messages?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) ## Using ECDSA With A Private Key In Unity The sign with private key methods may be used here to generate a signature from your authorization wallet. This can then passed into a function and read solidity side as bytes. You may then use the functions below solidity side to reverse engineer the signature via ECDSA to check that it has actually originated from your authorization wallet. In the next step we'll show you how this can be checked solidity side. diff --git a/docs/v2.6/11_gasless-transactions-using-gelato.md b/docs/v2.6/11_gasless-transactions-using-gelato.md index 19bfb904..5e2a536e 100644 --- a/docs/v2.6/11_gasless-transactions-using-gelato.md +++ b/docs/v2.6/11_gasless-transactions-using-gelato.md @@ -13,7 +13,7 @@ This area will explain basic interactions for using Gelato and gasless transacti ::: -We've now integrated Gelato gasless transactions into the SDK to help reduce friction that some users any face when entering the blockchain world. You simply need a Gelato API key which can be obtained [here](https://relay.Gelato.network/) We have an example API key for testing purposes but this shouldn't be used in a production app. Please ensure that you're replacing this with your own key before going to production. +We've now integrated Gelato gasless transactions into the SDK to help reduce friction that some users any face when entering the blockchain world. You simply need a Gelato API key which can be obtained [here](https://relay.gelato.network/?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals) We have an example API key for testing purposes but this shouldn't be used in a production app. Please ensure that you're replacing this with your own key before going to production. ## Logging In With Gelato In order to make use of our Gelato functions you need to ensure the chain has Gelato capability enabled. You can check this by logging into our sample scene. If the Gelato functions are there then you're good to go, if not you will need to wait for Gelato to update on their end in order to provide functionality for your chain. Our SDKs sample scene provides a variety of Gelato functions for you to test out. diff --git a/docs/v2.6/12_ramp.md b/docs/v2.6/12_ramp.md index 2f39fcf1..826f62e9 100644 --- a/docs/v2.6/12_ramp.md +++ b/docs/v2.6/12_ramp.md @@ -18,7 +18,10 @@ This page explains what Ramp is & how to use it. Ramp is a quick and easy way to purchase crypto with Fiat currency if your country supports it. 1. You can import our Ramp sample scene by navigating to Window → Package Manager. -2. Add a new package by name by pressing + and adding via git url and entering `https://github.com/ChainSafe/web3.unity.git?path=/Packages/io.chainsafe.web3-unity.ramp` +2. Add a new package by name by pressing + and adding via git url and entering +```js +https://github.com/ChainSafe/web3.unity.git?path=/Packages/io.chainsafe.web3-unity.ramp +``` 3. Once the package is installed, click on the Samples tab. Import the samples. 4. Once imported, you can find the scene by navigating to Samples → web3.unity SDK → 2.6 → Web3.Unity Samples → Scenes → SampleLogin - Ramp. 5. Click on the Login Logic - Ramp object and in the inspector, modify the Scene To Load to your preferred scene. @@ -53,7 +56,7 @@ This object contains all the configuration you'll need to begin testing out Ramp ## Changing the company logo, app name & API key -By selecting the ramp scriptable object you're able to customize the logo (currently we're using the ChainSafe logo) You can place whichever logo & app name you'd like in here along with your API key which you can get from [here](https://docs.ramp.network/configuration) as needed. +By selecting the ramp scriptable object you're able to customize the logo (currently we're using the ChainSafe logo) You can place whichever logo & app name you'd like in here along with your API key which you can get from [here](https://docs.ramp.network/configuration?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals) as needed. ![](assets/ramp/ramp-logo.png) @@ -68,7 +71,7 @@ Once logged in you'll be presented with our famous sample scene page, which you' ![](assets/ramp/ramp-functionality.png) -As you can see from the functions here in ramp.cs, we're providing 3 different types of ramp functionality for use with your project. This can be accessed through the Web3 object as needed. You can also check out the ramp configuration docs [here](https://docs.ramp.network/configuration) if you would like to add additional settings or use other tokens besides sepolia eth. +As you can see from the functions here in ramp.cs, we're providing 3 different types of ramp functionality for use with your project. This can be accessed through the Web3 object as needed. You can also check out the ramp configuration docs [here](https://docs.ramp.network/configuration?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals) if you would like to add additional settings or use other tokens besides sepolia eth. ### On-ramp @@ -81,7 +84,7 @@ private async void OnRampPressed() var purchaseData = await Web3Accessor.Web3.RampExchanger().BuyCrypto( new RampBuyWidgetSettings { - // For more info on widget settings check https://docs.ramp.network/configuration + // For more info on widget settings check https://docs.ramp.network/configuration?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals //Since this is only a demo, SEPOLIA_ETH is used as a fake token. For production environment, //you should use real tokens like ETH, DAI, USDC, etc. SwapAsset = "SEPOLIA_ETH", @@ -108,7 +111,7 @@ private async void OffRampPressed() var saleData = await Web3Accessor.Web3.RampExchanger().SellCrypto( new RampSellWidgetSettings { - // For more info on widget settings check https://docs.ramp.network/configuration + // For more info on widget settings check https://docs.ramp.network/configuration?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals OfframpAsset = "SEPOLIA_ETH", DefaultAsset = "SEPOLIA_ETH", FiatCurrency = "EUR", @@ -133,7 +136,7 @@ private async void OnRampOffRampPressed() var rampTransactionData = await Web3Accessor.Web3.RampExchanger().BuyOrSellCrypto( new RampBuyOrSellWidgetSettings { - // For more info on widget settings check https://docs.ramp.network/configuration + // For more info on widget settings check https://docs.ramp.network/configuration?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals SwapAsset = "SEPOLIA_ETH", OfframpAsset = "SEPOLIA_ETH", DefaultAsset = "SEPOLIA_ETH", @@ -180,7 +183,7 @@ This is a local/localhost specific error and doesn't happen on real domains duri
[Unity Editor Directory] is usually `C:/Program Files/Unity/Hub/Editor/2022.3.../`

- Mac/Linux: Install [Python](https://www.python.org/downloads/) and in the Build directory open terminal + Mac/Linux: Install [Python](https://www.python.org/downloads/?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals) and in the Build directory open terminal
Run command `py -m http.server`

diff --git a/docs/v2.6/13_lootboxes.md b/docs/v2.6/13_lootboxes.md index 808eacd7..9cd30b25 100644 --- a/docs/v2.6/13_lootboxes.md +++ b/docs/v2.6/13_lootboxes.md @@ -17,13 +17,16 @@ This page will walk you through our newest feature, lootboxes. It's a nifty litt Lootboxes are a great way to offer your users NFTs, tokens & variety of other things in a gamified way. Many things from cosmetics to in game items can be offered with a sense of randomness via the Chainlink VRF to help facilitate anticipation and hopefully a fun way to bring developers some much needed revenue. 1. You can import our Lootboxes sample scene by navigating to Window → Package Manager. -2. Add a new package by name by pressing + and adding via git url and entering `https://github.com/ChainSafe/web3.unity.git?path=/Packages/io.chainsafe.web3-unity.lootboxes` +2. Add a new package by name by pressing + and adding via git url and entering +```js +https://github.com/ChainSafe/web3.unity.git?path=/Packages/io.chainsafe.web3-unity.lootboxes +``` 3. Once the package is installed, click on the Samples tab. Import the samples. 4. Once imported, you can find the scene by navigating to Samples → web3.unity SDK → 3.0.X → Web3.Unity Samples → Scenes → SampleLogin - Lootboxes. ## What is Chainlink VRF? -VRF stands for Verifiable Random Function, the team over at [Chainlink](https://chain.link/) have created this number generator. It generates random numbers along with verification on chain before any consuming applications can get their hands on it. This amazing number generator is built for blockchains, it provides cryptographically secure randomness for your contract functions. To find out more about Chainlink VRF you can check out the documentation [here](https://docs.chain.link/vrf). +VRF stands for Verifiable Random Function, the team over at [Chainlink](https://chain.link/?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals) have created this number generator. It generates random numbers along with verification on chain before any consuming applications can get their hands on it. This amazing number generator is built for blockchains, it provides cryptographically secure randomness for your contract functions. To find out more about Chainlink VRF you can check out the documentation [here](https://docs.chain.link/vrf?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals). ## Solidity Contracts diff --git a/docs/v2.6/14_extending-the-sdk.md b/docs/v2.6/14_extending-the-sdk.md index 0b8d7f70..34e845ab 100644 --- a/docs/v2.6/14_extending-the-sdk.md +++ b/docs/v2.6/14_extending-the-sdk.md @@ -16,7 +16,7 @@ This area will explain how we've made use of Dependency Injections as well as ho This SDK was designed to be extendable. This was achieved by utilizing the Dependency Injection framework. There are different implementations of DI frameworks that you can use in Unity, Zenject being the most popular one. However as this SDK aims to be cross-engine Microsoft's DI framework was chosen -as the one that can run in any CLR environment. You can read more about Microsoft's DI framework [using this link](https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection#multiple-constructor-discovery-rules). +as the one that can run in any CLR environment. You can read more about Microsoft's DI framework [using this link](https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals#multiple-constructor-discovery-rules). As any DI framework it works with contract-implementation pairs. So, when you request the RpcProvider with `web3.RpcProvider`, the SDK looks for the implementation of `IRpcProvider` @@ -236,4 +236,4 @@ This modular approach allows you to create your own UPM (Unity Package Manager) extend ChainSafe Gaming SDK. Just put your new services in a separate package and add a reference to `io.chainsafe.web3-unity` in your manifest file. -To learn more on how to create a new UPM package [visit this page](https://docs.unity3d.com/Manual/CustomPackages.html). \ No newline at end of file +To learn more on how to create a new UPM package [visit this page](https://docs.unity3d.com/Manual/CustomPackages.html?utm_source=Referrals&utm_medium=chainsafe&utm_campaign=referrals). \ No newline at end of file diff --git a/docs/v2.6/16_block-racers-game.md b/docs/v2.6/16_block-racers-game.md index 2eaae985..05962855 100644 --- a/docs/v2.6/16_block-racers-game.md +++ b/docs/v2.6/16_block-racers-game.md @@ -16,10 +16,10 @@ This game was built to show you how our SDK would function in a game environment The repo contains a fun multiplayer racing game which was build to help explain the functionality of the SDK complete with code examples. ## Block Racers Project Files -The repo for the Block Racers project files can be found [here](https://github.com/ChainSafe/BlockRacers/) +The repo for the Block Racers project files can be found [here](https://github.com/ChainSafe/BlockRacers/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) ## Block Racers Playable Demo -The Block Racers game demo can be found [here](https://chainsafe.github.io/BlockRacersGame/) +The Block Racers game demo can be found [here](https://chainsafe.github.io/BlockRacersGame/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) ## Booting Up The Game & Connecting Your Wallet Once the game has booted up, simply connect your wallet and have a look around through the menus. @@ -281,7 +281,7 @@ public class EcdsaSignMessage : MonoBehaviour ``` ## Dashboard -Clicking this button will take you to the chainsafe dashboard [here](https://dashboard.gaming.chainsafe.io/) where you can do things like signing up for a project ID and set various other project information. +Clicking this button will take you to the chainsafe dashboard [here](https://dashboard.gaming.chainsafe.io/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) where you can do things like signing up for a project ID and set various other project information. ![](assets/block-racers/block-racers10.png) diff --git a/docs/v2.6/17_block-blasterz-game.md b/docs/v2.6/17_block-blasterz-game.md index c02f4e7c..eba004f0 100644 --- a/docs/v2.6/17_block-blasterz-game.md +++ b/docs/v2.6/17_block-blasterz-game.md @@ -16,4 +16,4 @@ This game was built to show you how our SDK would function in a game environment The repo contains a fun fps game which was build to help explain the functionality of the SDK complete with code examples. ## Block Blasterz Project Files -The repo for the Block Blasterz project files can be found [here](https://github.com/ChainSafe/BlockBlasterz/) \ No newline at end of file +The repo for the Block Blasterz project files can be found [here](https://github.com/ChainSafe/BlockBlasterz/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) \ No newline at end of file diff --git a/docs/v2.6/18_faq.md b/docs/v2.6/18_faq.md index e2c7db68..6fff7b1d 100644 --- a/docs/v2.6/18_faq.md +++ b/docs/v2.6/18_faq.md @@ -30,7 +30,7 @@ Yes, you can make desktop, web, and mobile games using our SDK. ### Does the SDK support other EVM-compatible chains besides Ethereum? -Yes. The SDK will support other EVM-compatible chains, should you run into any issues with a particular chain, please reach out on our [Discord](https://discord.gg/zxHUgGGTGk). +Yes. The SDK will support other EVM-compatible chains, should you run into any issues with a particular chain, please reach out on our [Discord](https://discord.gg/zxHUgGGTGk?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). ### Does the SDK support other non-EVM blockchains like Solana or Algorand? @@ -50,7 +50,7 @@ Not currently. Although, the SDK is mainly compatible with Ethereum Virtual Mach web3.unity is currently on v2. -You can download the [latest release](https://github.com/ChainSafe/web3.unity/releases/) and import it into your Unity build. We have an installation tutorial here: [https://docs.gaming.chainsafe.io/](https://docs.gaming.chainsafe.io/) +You can download the [latest release](https://github.com/ChainSafe/web3.unity/releases/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) and import it into your Unity build. We have an installation tutorial [here](https://docs.gaming.chainsafe.io/). ### What are the benefits of moving to the latest version? @@ -70,11 +70,11 @@ Some effort will be required to refactor games that use modified versions of our This largely depends on the amount of affected code you have in your game and the platform that you’re building on; both our team and the community are here to help. -Join our [Discord](https://discord.gg/zxHUgGGTGk) for support or reach out to our team at `bd@chainsafe.io` for consulting engagements, we are happy to assist. +Join our [Discord](https://discord.gg/zxHUgGGTGk?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) for support or reach out to our team at `bd@chainsafe.io` for consulting engagements, we are happy to assist. ### What is an RPC and how do I get one? -A Remote Procedure Call or RPC node is a type of computer server that allows users to read data on the blockchain and send transactions to different networks. You can deploy one using either [QuickNode](https://www.quicknode.com/) or [Chainstack](https://chainstack.com/). +A Remote Procedure Call or RPC node is a type of computer server that allows users to read data on the blockchain and send transactions to different networks. You can deploy one using either [QuickNode](https://www.quicknode.com/?utm_source=chainsafe&utm_medium=referrals&utm_campaign=Referrals) or [Chainstack](https://chainstack.com/?utm_source=chainsafe&utm_medium=referrals&utm_campaign=Referrals). ### Are RPCs required? @@ -86,7 +86,10 @@ While we appreciate and understand how this may impact some of our existing deve ### Can someone help migrate my game to the latest version? -Please join us in our [Discord](https://discord.gg/zxHUgGGTGk) ([#gaming-help](https://discord.gg/QKxVQBsyPt), [#community-code-support](https://discord.gg/sYhfpxrEHt)) for support from our core devs, ChainSages, and other SDK community members. If additional consulting is required, please contact us at `bd@chainsafe.io` to set up a call with our team. +Please join us in our [Discord](https://discord.gg/zxHUgGGTGk?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) ([#gaming-help](https://discord.gg/QKxVQBsyPt?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) for support from our core devs, ChainSages, and other SDK community members. If additional consulting is required, please contact us at ```js +bd@chainsafe.io +``` +to set up a call with our team. ### Will the web3.unity SDK remain free to use? diff --git a/docs/v2.6/20_mud.md b/docs/v2.6/20_mud.md index 1b4a8a98..b995d079 100644 --- a/docs/v2.6/20_mud.md +++ b/docs/v2.6/20_mud.md @@ -13,13 +13,13 @@ extendable by default. These worlds come with access control, upgradability, hoo developer tools. MUD evolved from experiences building cutting-edge on-chain games like Dark Forest and zkDungeon. With our MUD integration, you can now easily create truly decentralized game applications within Unity! -_If you're not familiar with MUD and the concept of autonomous worlds, please refer to the [MUD documentation](https://mud.dev/introduction) first._ +_If you're not familiar with MUD and the concept of autonomous worlds, please refer to the [MUD documentation](https://mud.dev/introduction?utm_source=chainsafe&utm_medium=referrals&utm_campaign=Referrals) first._ ## Building a MUD Application in Unity Before you can start developing your Unity MUD application, you should either deploy or run your MUD world locally. A MUD world is essentially a set of smart contracts with one main contract called 'World'. Please follow the [Hello World -Tutorial](https://mud.dev/quickstart) from the original MUD documentation to get started. +Tutorial](https://mud.dev/quickstart?utm_source=chainsafe&utm_medium=referrals&utm_campaign=Referrals) from the original MUD documentation to get started. You can find examples of interacting with the MUD world in the Samples of our UPM package, but we'll cover the most important parts in this tutorial. diff --git a/docs/v2.6/3_metamask.md b/docs/v2.6/3_metamask.md index 5d682eb9..16426319 100644 --- a/docs/v2.6/3_metamask.md +++ b/docs/v2.6/3_metamask.md @@ -8,7 +8,7 @@ sidebar_label: Metamask ## What is Metamask? -MetaMask is a digital wallet and browser extension that allows users to securely interact with EVM-based games. It acts as a bridge between your browser and the EVM chains, making it easy to send, receive, and swap digital assets. You can learn more about MetaMask [here](https://metamask.io/). +MetaMask is a digital wallet and browser extension that allows users to securely interact with EVM-based games. It acts as a bridge between your browser and the EVM chains, making it easy to send, receive, and swap digital assets. You can learn more about MetaMask [here](https://metamask.io/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). :::note diff --git a/docs/v2.6/4_reown.md b/docs/v2.6/4_reown.md index 65af235e..83997274 100644 --- a/docs/v2.6/4_reown.md +++ b/docs/v2.6/4_reown.md @@ -18,7 +18,7 @@ You must create an account and project in the Reown (Wallet Connect) dashboard t ## Custom Reown (Wallet Connect) Endpoint -Head on over to the dashboard at [Reown (Wallet Connect)](https://cloud.walletconnect.com/sign-in) to sign up and get your details. +Head on over to the dashboard at [Reown (Wallet Connect)](https://cloud.walletconnect.com/sign-in?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) to sign up and get your details. ![](assets/wallets/reown/reown-dash.png) diff --git a/docs/v2.6/5_web3auth.md b/docs/v2.6/5_web3auth.md index 12efdd46..a6b2586f 100644 --- a/docs/v2.6/5_web3auth.md +++ b/docs/v2.6/5_web3auth.md @@ -32,7 +32,7 @@ In the Wallet GUI Config, you can fine-tune the behavior and appearance of the W ### Getting Client Id -In order to properly populate the Client Id and redirect URL go to [Web3Auth dashboard](https://dashboard.web3auth.io/) +In order to properly populate the Client Id and redirect URL go to [Web3Auth dashboard](https://dashboard.web3auth.io/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) In the dashboard, click on project navigation column on the left, and click "Create Project". diff --git a/docs/v2.6/6_hyperplay.md b/docs/v2.6/6_hyperplay.md index 450a80c6..a0e18ecc 100644 --- a/docs/v2.6/6_hyperplay.md +++ b/docs/v2.6/6_hyperplay.md @@ -12,6 +12,6 @@ HyperPlay is a wallet solution that runs in a desktop client. It uses web reques ## HyperPlay Desktop App -You will also need to install the hyperplay app which you can find [here](https://www.hyperplay.xyz/downloads) It's a nifty little desktop app that communicates with unity when web requests are sent to it. Once your wallet is logged in to the hyperplay app, when you login or make calls with the SDK, the app will prompt you to interact with your wallet. +You will also need to install the hyperplay app which you can find [here](https://www.hyperplay.xyz/downloads?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs) It's a nifty little desktop app that communicates with unity when web requests are sent to it. Once your wallet is logged in to the hyperplay app, when you login or make calls with the SDK, the app will prompt you to interact with your wallet. ![](assets/wallets/hyperplay/hyperplay-app.png) diff --git a/docs/v2.6/7_setting-up-an-rpc-node.md b/docs/v2.6/7_setting-up-an-rpc-node.md index fec23806..2478cd93 100644 --- a/docs/v2.6/7_setting-up-an-rpc-node.md +++ b/docs/v2.6/7_setting-up-an-rpc-node.md @@ -11,7 +11,7 @@ import TabItem from '@theme/TabItem'; :::info -This section walks through the process of setting up an RPC node to be used with the web3.unity SDK. We use [Chainstack](https://console.chainstack.com/user/account/create?utm_campaign=Referrals&utm_source=chainsafe&utm_medium=referrals) and [QuickNode](https://dashboard.quicknode.com/?prompt=signup) as an example, but this can also be done with other providers. Setting up an RPC node is not a requirement for the SDK but it will help in terms of congestion and stability as the public nodes can be saturated at times. +This section walks through the process of setting up an RPC node to be used with the web3.unity SDK. We use [Chainstack](https://console.chainstack.com/user/account/create?utm_campaign=Referrals&utm_source=chainsafe&utm_medium=referrals) and [QuickNode](https://dashboard.quicknode.com/?prompt=signup&utm_source=chainsafe&utm_medium=referrals&utm_campaign=Referrals) as an example, but this can also be done with other providers. Setting up an RPC node is not a requirement for the SDK but it will help in terms of congestion and stability as the public nodes can be saturated at times. ::: @@ -88,7 +88,7 @@ Note that Chainstack’s Developer plan provides 3 million free API requests per :::note Prerequisites -- A QuickNode account (sign up at [QuickNode](https://dashboard.quicknode.com/?prompt=signup) if you don't have one) +- A QuickNode account (sign up at [QuickNode](https://dashboard.quicknode.com/?prompt=signup&utm_source=chainsafe&utm_medium=referrals&utm_campaign=Referrals) if you don't have one) - Familiarity with the web3.unity SDK ::: @@ -116,7 +116,7 @@ Prerequisites :::info -Note that the free plan QuickNode offers provides 10 million API requests per month. This should be enough for most testing and app development purposes. If your game requires more calls per month, we would suggest [upgrading your plan](https://dashboard.quicknode.com/select-plan). +Note that the free plan QuickNode offers provides 10 million API requests per month. This should be enough for most testing and app development purposes. If your game requires more calls per month, we would suggest [upgrading your plan](https://dashboard.quicknode.com/select-plan?utm_source=chainsafe&utm_medium=referrals&utm_campaign=Referrals). ::: diff --git a/docs/v2.6/9_sample-scripts-and-chain-interactions.md b/docs/v2.6/9_sample-scripts-and-chain-interactions.md index 2ec6101e..676ca998 100644 --- a/docs/v2.6/9_sample-scripts-and-chain-interactions.md +++ b/docs/v2.6/9_sample-scripts-and-chain-interactions.md @@ -180,7 +180,7 @@ public class TempAccountProvider : IAccountProvider ``` ## IPFS Upload -In order to upload your files to IPFS, you will need to obtain your storage API secret and bucket id from ChainSafe's storage [here](https://app.storage.chainsafe.io/). +In order to upload your files to IPFS, you will need to obtain your storage API secret and bucket id from ChainSafe's storage [here](https://app.storage.chainsafe.io/?utm_source=docs&utm_medium=documentation&utm_campaign=chainsafe_gaming_docs). ``` csharp public class IpfsSample : MonoBehaviour, ISample