### Local Setup and Installation Source: https://github.com/deso-protocol/docs/blob/main/deso-frontend/exchange-listing-api-1.md Instructions to clone the DeSo examples repository, install dependencies, and start the development server locally. This is the first step to running the provided examples. ```bash git clone https://github.com/deso-protocol/deso-examples-react.git cd deso-examples-react npm i npm run start ``` -------------------------------- ### DeSo Frontend: Get Started Source: https://github.com/deso-protocol/docs/blob/main/SUMMARY.md Guides users on how to get started with the DeSo frontend, likely involving setup and basic usage of frontend components or libraries. ```markdown ## DeSo Frontend: Get Started This section provides the initial steps for developers looking to build or integrate with the DeSo frontend. It covers essential setup procedures and points to key resources for a smooth development experience. ``` -------------------------------- ### Download and Start Deso Node Containers Source: https://github.com/deso-protocol/docs/blob/main/deso-nodes/setup.md Navigates into the cloned 'run' directory and executes the 'run.sh' script to download and start the node's frontend, backend, and nginx containers. This script automates the container setup process. ```bash cd run ./run.sh ``` -------------------------------- ### Install Prerequisites with Homebrew Source: https://github.com/deso-protocol/docs/blob/main/architecture-overview/dev-setup.md Installs Node.js, NPM, and Go using Homebrew, essential for setting up the DeSo development environment. Includes commands to check installed versions. ```bash brew install nvm # follow the output to set up your ~/.nvm folder, nvm script, and shell completion nvm install 13 # check the versions node -v npm -v # then install go brew install go@1.15 # check the version go version ``` -------------------------------- ### Install vips Source: https://github.com/deso-protocol/docs/blob/main/architecture-overview/dev-setup.md Installs the vips library, a dependency for the DeSo Protocol, using either Homebrew on macOS or apt on Ubuntu. ```bash brew install vips # or apt install libvips-tools ``` -------------------------------- ### Clone and Run DeSo Frontend Starter Source: https://github.com/deso-protocol/docs/blob/main/frontend-nextjs-example.md Instructions for cloning the DeSo Frontend Starter repository, installing dependencies, and starting the development server. ```bash git clone https://github.com/brootle/deso-starter-nextjs-plus.git cd deso-starter-nextjs-plus npm install npm run dev ``` -------------------------------- ### Run Frontend in Development Mode Source: https://github.com/deso-protocol/docs/blob/main/architecture-overview/dev-setup.md Installs frontend dependencies using NPM and starts the frontend development server, which typically runs on localhost:4200 with auto-reloading. ```bash # Assume we're starting in $WORKING_DIRECTORY, which contains all the repos cd frontend npm install # The following command will serve the frontend on localhost:4200 with # auto-reloading on changes. You must run a node before the site will # actually work however (see next section). npm start ``` -------------------------------- ### DeSo Python SDK: Getting Started and Usage Source: https://github.com/deso-protocol/docs/blob/main/SUMMARY.md This section provides guidance on using the DeSo Python SDK, including setting up accounts, debugging, and leveraging AI for blockchain development. ```Python # Example: Creating a DeSo testnet account from deso_sdk.key_import import KeyImport # Generate a new private key for testnet private_key = KeyImport.generate_testnet_private_key() public_key = KeyImport.private_key_to_public_key(private_key) print(f"Private Key: {private_key}") print(f"Public Key: {public_key}") # Example: Debugging tips (conceptual) # Use logging to track operations # Inspect transaction details before broadcasting # Example: Market-Making Bot (conceptual) # from deso_sdk.market import DeSoMarket # market = DeSoMarket(private_key, public_key) # buy_order = market.create_buy_order(token_id='XYZ', amount=100, price=0.5) # market.broadcast(buy_order) # Example: AI-Generating Your Code (conceptual) # Use AI tools to generate Python code snippets for DeSo interactions # e.g., prompt: "Write a Python function using DeSo SDK to create a post." ``` -------------------------------- ### DeSo Core Functionality Example Source: https://github.com/deso-protocol/docs/blob/main/deso-tutorial-build-apps.md Demonstrates the core building blocks for interacting with the DeSo platform, including configuration, login, transaction construction, and signing/submitting transactions. This serves as a starting point for building various applications on DeSo. ```javascript import { Deso } from 'deso-protocol'; // Initialize DeSo with configuration const deso = new Deso(); // Example login flow async function loginUser() { const loginResponse = await deso.user.login({ // ... login parameters }); console.log('Login successful:', loginResponse); } // Example transaction construction and submission async function createAndSubmitPost() { // Construct the transaction data (e.g., creating a post) const transactionData = { // ... post creation parameters }; // Sign and submit the transaction const txResponse = await deso.transactions.signAndSubmitTx({ transaction: transactionData }); console.log('Transaction submitted:', txResponse); } // Call functions to execute the flow // loginUser(); // createAndSubmitPost(); ``` ```typescript import { Deso } from 'deso-protocol'; // Initialize DeSo with configuration const deso = new Deso(); // Example login flow async function loginUser(): Promise { const loginResponse = await deso.user.login({ // ... login parameters }); console.log('Login successful:', loginResponse); } // Example transaction construction and submission async function createAndSubmitPost(): Promise { // Construct the transaction data (e.g., creating a post) const transactionData = { // ... post creation parameters }; // Sign and submit the transaction const txResponse = await deso.transactions.signAndSubmitTx({ transaction: transactionData }); console.log('Transaction submitted:', txResponse); } // Call functions to execute the flow // loginUser(); // createAndSubmitPost(); ``` -------------------------------- ### Install DeSo Protocol SDK Source: https://github.com/deso-protocol/docs/blob/main/deso-frontend/exchange-listing-api-1.md Commands to install the DeSo Protocol SDK using either npm or yarn package managers. This SDK is essential for integrating DeSo functionalities into your React application. ```bash # npm npm i deso-protocol # yarn yarn add deso-protocol ``` -------------------------------- ### Setting up a Local Identity Service Source: https://github.com/deso-protocol/docs/blob/main/architecture-overview/dev-setup.md This section details the steps to run a local identity service. It includes installing Node.js dependencies, installing the Angular CLI globally, and serving the identity service on a specific port with auto-reloading. ```bash # Assume we're starting in $WORKING_DIRECTORY, which contains all the repos cd identity npm install # Install angular cli sudo npm install -g @angular/cli typescript tslint dep # The following command will serve identity on localhost:4201 with # auto-reloading on changes. ng serve --port 4201 ``` -------------------------------- ### Managing Deso Node Containers via Docker GUI Source: https://github.com/deso-protocol/docs/blob/main/deso-nodes/setup.md Instructions on how to start or stop the Deso node containers using the Docker GUI. This involves navigating to the containers/apps tab, finding the 'run' tab, and using the start/stop button. ```docker Open Docker GUI Navigate to Containers/Apps tab Hover over the 'run' tab Click the start/stop button ``` -------------------------------- ### DeSo Identity Window API Calls Source: https://github.com/deso-protocol/docs/blob/main/deso-identity/window-api/basics.md Examples of common calls to the DeSo Identity Window API for login, signup, logout, and approval. These calls utilize `window.open` to launch the Identity service in a new window or tab. The `testnet` parameter can be added to any path for testnet interactions. ```javascript const login = window.open('https://identity.deso.org/log-in'); const signUp = window.open('https://identity.deso.org/sign-up'); const logout = window.open('https://identity.deso.org/logout?publicKey=BC123...'); const approve = window.open('https://identity.deso.org/approve?tx=0abf35a...'); // Can be added to any path for testnet deso and bitcoin addresses const testnet = window.open('https://identity.deso.org/log-in?testnet=true'); ``` -------------------------------- ### Run Mainnet Node Source: https://github.com/deso-protocol/docs/blob/main/architecture-overview/dev-setup.md Starts a local node that connects to the mainnet DeSo blockchain peers. This process involves downloading historical blocks and syncing the mempool, which can take a significant amount of time. It's used for testing changes against the live mainnet environment. ```bash # Assume we're starting in $WORKING_DIRECTORY, which contains all the repos. # Also assume we have "ng serve" running. cd backend/scripts/nodes # The n0 script runs a node that connects to mainnet peers. It will download # all the blocks from its peers and then start syncing its mempool from them. # You can see the status of the node by going to the Admin tab after # logging in with an account and then going to the Network subtab. Note that # syncing the blockchain may take an hour or so. $ ./n0 ``` -------------------------------- ### Run Testnet Node Source: https://github.com/deso-protocol/docs/blob/main/architecture-overview/dev-setup.md Starts a local testnet blockchain node using the `n0_test` script. This node mines blocks rapidly and can be configured to reward a specified public key. It's essential for testing functionalities with test funds. ```bash # Assume we're starting in $WORKING_DIRECTORY, which contains all the # repos. Also assume we have "ng serve" running. cd backend/scripts/nodes # The n0_test script runs a testnet blockchain locally. It starts mining # blocks immediately at a much faster rate than mainnet. You can set your # public key to receive the block rewards by setting it as --miner-public-key # in the arguments. This gives you funds that you can test with. You can see # the status of the node by going to the Admin tab after logging in with an # account and then going to the Network subtab. export CGO_CFLAGS_ALLOW="-Xpreprocessor" ./n0_test # Once n0_test is running, you must navigate to the following URL. 4200 is the # port for ng serve. Note that in order to be http://localhost:4200 ``` -------------------------------- ### GET Callback Example Source: https://github.com/deso-protocol/docs/blob/main/deso-identity/window-api/endpoints.md Example of a GET request to a callback URL with shared secrets. ```javascript GET callback?sharedSecrets=ccf9474d7578658e0c77adb7aea5cc9b61d3bccad5bddddd11e1850dfa4db059, db7aea5cc9b61d3b..., a11e1850dfa4db059... ``` -------------------------------- ### DeSo Identity Callback GET Request Example Source: https://github.com/deso-protocol/docs/blob/main/deso-identity/window-api/endpoints.md This example demonstrates how the Identity service sends derived key information as URL parameters in a GET request to a specified callback URL. ```javascript GET auth://derive?derivedSeedHex=...&derivedPublicKey=...&publicKey=...& btcDepositAddress=...ðDepositAddress=...&expirationBlock=...&network=...& accessSignature=...&jwt=...&derivedJwt=... ``` -------------------------------- ### Install DeSo Protocol SDK Source: https://github.com/deso-protocol/docs/blob/main/deso-tutorial-build-apps.md Instructions for installing the DeSo Protocol SDK using npm, enabling developers to integrate DeSo functionality into their existing applications. This includes logging in users, signing transactions, and broadcasting them to the blockchain. ```javascript npm i deso-protocol ``` -------------------------------- ### Clone Deso Node Repository Source: https://github.com/deso-protocol/docs/blob/main/deso-nodes/setup.md Clones the Deso node repository from GitHub. This is the first step in setting up a local Deso node. ```bash git clone https://github.com/deso-protocol/run.git ``` -------------------------------- ### Example Response for Get Paginated Access Group Members Source: https://github.com/deso-protocol/docs/blob/main/deso-backend/api/access-group-endpoints.md This is an example of a successful response (200 OK) from the 'get-paginated-access-group-members' endpoint. It illustrates the structure of the returned JSON, including the list of member public keys and the detailed profile information for each member. ```javascript { "AccessGroupMembersBase58Check": [ "tBCKVv5H1Gz6RTRhjxJwdzcfwfwoUo8b4PYWSKkayG4dy76Jsjt2Ro", "tBCKW665XZnvVZcCfcEmyeecSZGKAdaxwV2SH9UFab6PpSRikg4EJ2" ], "PublicKeyToProfileEntryResponse": { "tBCKVv5H1Gz6RTRhjxJwdzcfwfwoUo8b4PYWSKkayG4dy76Jsjt2Ro": { "PublicKeyBase58Check": "tBCKVv5H1Gz6RTRhjxJwdzcfwfwoUo8b4PYWSKkayG4dy76Jsjt2Ro", "Username": "lazynina", "Description": "", "IsHidden": false, "IsReserved": false, "IsVerified": false, "Comments": null, "Posts": null, "CoinEntry": { "CreatorBasisPoints": 10000, "DeSoLockedNanos": 6834043772, "NumberOfHolders": 1, "CoinsInCirculationNanos": 5448485463, "CoinWatermarkNanos": 5448485463, "BitCloutLockedNanos": 6834043772 }, "DAOCoinEntry": { "NumberOfHolders": 2, "CoinsInCirculationNanos": "0x1794bb7c13520200", "MintingDisabled": false, "TransferRestrictionStatus": "profile_owner_only" }, "CoinPriceDeSoNanos": 3762905032, "CoinPriceBitCloutNanos": 3762905032, "UsersThatHODL": null, "IsFeaturedTutorialWellKnownCreator": false, "IsFeaturedTutorialUpAndComingCreator": false, "ExtraData": { "DAOPublicKeysPurchased": "tBCKY3nVGx7M9FT7h1RcpJyWSUpnjEzJQRXSqwAPaqcAF42W9TEwt8", "DerivedPublicKey": "tBCKUoDRjbVj2JMWkMqiDzvbFrSGSdD9nGty4YXsNu4zZW5cySUrbG", "DiscordURL": "", "DisplayName": "", "FeaturedImageURL": "", "LargeProfilePicURL": "", "MarkdownDescription": "", "TelegramURL": "", "TwitterURL": "", "WebsiteURL": "" }, "DESOBalanceNanos": 16516822968844, "BestExchangeRateDESOPerDAOCoin": 0 }, "tBCKW665XZnvVZcCfcEmyeecSZGKAdaxwV2SH9UFab6PpSRikg4EJ2": { "PublicKeyBase58Check": "tBCKW665XZnvVZcCfcEmyeecSZGKAdaxwV2SH9UFab6PpSRikg4EJ2", "Username": "cloutchaser", "Description": "", "IsHidden": false, "IsReserved": false, "IsVerified": false, "Comments": null, "Posts": null, "CoinEntry": { "CreatorBasisPoints": 10000, "DeSoLockedNanos": 1124400018, "NumberOfHolders": 1, "CoinsInCirculationNanos": 9999331379, "CoinWatermarkNanos": 9999331379, "BitCloutLockedNanos": 1124400018 }, "DAOCoinEntry": { "NumberOfHolders": 3, "CoinsInCirculationNanos": "0xd96914214a6b400", "MintingDisabled": false, "TransferRestrictionStatus": "profile_owner_only" }, "CoinPriceDeSoNanos": 337342594, "CoinPriceBitCloutNanos": 337342594, "UsersThatHODL": null, "IsFeaturedTutorialWellKnownCreator": false, "IsFeaturedTutorialUpAndComingCreator": false, "ExtraData": { "DAOPublicKeysPurchased": null, "DerivedPublicKey": "tBCKz4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f1f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f1f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f ``` -------------------------------- ### Run Storybook for UI Components Source: https://github.com/deso-protocol/docs/blob/main/frontend-nextjs-example.md Command to launch Storybook, allowing developers to explore and test UI components in isolation. ```bash npm run storybook ``` -------------------------------- ### Clone DeSo Protocol Repositories Source: https://github.com/deso-protocol/docs/blob/main/architecture-overview/dev-setup.md Clones all necessary DeSo Protocol repositories (core, backend, frontend, identity) into a specified working directory. This step is crucial for setting up the project structure. ```bash cd $WORKING_DIRECTORY git clone https://github.com/deso-protocol/core.git git clone https://github.com/deso-protocol/backend.git git clone https://github.com/deso-protocol/frontend.git git clone https://github.com/deso-protocol/identity.git ``` -------------------------------- ### DeSo Identity Login Response Payload Source: https://github.com/deso-protocol/docs/blob/main/deso-identity/window-api/basics.md An example of the data payload received from the DeSo Identity Service after a user logs in. It includes user credentials, network information, and authentication details. ```javascript { id: null, service: "identity", method: "login", payload: { users: { BC1YLj8iwsicimv8ttrPg6rBtizvM7X3KCsiVQwYZKqj6Wj3rT8TD3D: { hasExtraText: false, btcDepositAddress: "16YqLEpYzeV1aCcp7YwHKh9m5Kg4Sd8eak", ethDepositAddress: "0xf8212f8d8E881090653bFF0AC99f499063bCFE77", version: 1, encryptedSeedHex: "0ac1d9e14c640a26ea3f70095f9b27a50ef06652aea7a2f19f086d750e5f4ecf2d752568b9e3fd3400ad8581d9cf8da5dab3ea29078c1a528f81a51b55514ed5", network: "mainnet", accessLevel: 4, accessLevelHmac: "d66741dcf7a828e7b2b3c44708643de335de28b7a4941eeb687a6d5b1da66e77" } }, publicKeyAdded: "BC1YLj8iwsicimv8ttrPg6rBtizvM7X3KCsiVQwYZKqj6Wj3rT8TD3D", signedUp: true } } ```