├── .gitbook └── assets │ ├── Report Content.png │ ├── Report User.jpg │ ├── Screen Shot 2021-12-27 at 10.03.58 PM.png │ ├── Screen Shot 2021-12-27 at 10.04.24 PM.png │ ├── Screen Shot 2021-12-27 at 10.05.19 PM.png │ ├── Screen Shot 2021-12-27 at 10.06.13 PM.png │ ├── Screen Shot 2021-12-27 at 10.06.47 PM.png │ ├── Screen Shot 2021-12-27 at 10.24.28 PM.png │ ├── Screen Shot 2021-12-27 at 10.25.14 PM.png │ ├── Screen Shot 2021-12-27 at 10.25.54 PM.png │ ├── Screen Shot 2021-12-27 at 11.38.16 PM.png │ ├── Screen Shot 2021-12-27 at 11.48.00 PM.png │ ├── Screen Shot 2021-12-28 at 1.16.49 PM.png │ ├── Screen Shot 2021-12-28 at 1.31.57 PM (1).png │ ├── Screen Shot 2021-12-28 at 1.31.57 PM.png │ ├── Screen Shot 2021-12-28 at 1.34.58 PM.png │ ├── Screen Shot 2021-12-28 at 1.42.12 PM.png │ ├── Screen Shot 2021-12-28 at 1.49.49 PM.png │ ├── Screen Shot 2021-12-28 at 1.52.57 PM.png │ ├── Screen Shot 2021-12-28 at 1.53.11 PM.png │ ├── Screen Shot 2023-02-09 at 8.37.51 AM.png │ ├── Screenshot from 2021-11-22 01-13-56.png │ ├── Screenshot from 2021-11-25 01-00-47.png │ ├── Screenshot from 2021-11-25 01-00-478.png │ ├── Screenshot from 2021-11-28 15-30-31.png │ ├── Screenshot from 2021-11-28 15-44-39.png │ ├── Screenshot from 2021-11-28 15-45-03.png │ ├── Screenshot from 2021-11-28 15-45-23 (1).png │ ├── Screenshot from 2021-11-28 15-45-23.png │ ├── Untitled (1).png │ ├── Untitled (2) (1).png │ ├── Untitled (2).png │ ├── Untitled (3).png │ ├── Untitled (4).png │ ├── Untitled.png │ ├── advanced (1).png │ ├── advanced.png │ ├── buy-bitclout-settings (2) (2) (1) (1) (1).png │ ├── buy-bitclout-settings (2) (2) (1) (1) (2).png │ ├── buy-bitclout-settings (2) (2) (1) (1) (3).png │ ├── buy-bitclout-settings (2) (2) (1) (1) (4).png │ ├── buy-bitclout-settings (2) (2) (1) (1) (5).png │ ├── buy-bitclout-settings (2) (2) (1) (1) (6).png │ ├── buy-bitclout-settings (2) (2) (1) (1).png │ ├── buy-bitclout-settings (2) (2) (1) (2).png │ ├── buy-bitclout-settings (2) (2) (1) (3).png │ ├── buy-bitclout-settings (2) (2) (1) (4).png │ ├── buy-bitclout-settings (2) (2) (1) (5).png │ ├── buy-bitclout-settings (2) (2) (1) (6).png │ ├── buy-bitclout-settings (2) (2) (1) (7).png │ ├── buy-bitclout-settings (2) (2) (1).png │ ├── buy-deso-settings-3.png │ ├── desoconsole2.png │ ├── desoconsole3.png │ ├── desopage1 (1).png │ ├── desopage1.png │ ├── desopage2.png │ ├── desopage3 (1).png │ ├── desopage3.png │ ├── docker-toggle-container.PNG │ ├── git clone updated.PNG │ ├── git-setup.PNG │ ├── git.PNG │ ├── image (1) (1).png │ ├── image (1).png │ ├── image (10).png │ ├── image (11).png │ ├── image (12).png │ ├── image (13) (1).png │ ├── image (13).png │ ├── image (14).png │ ├── image (15).png │ ├── image (16).png │ ├── image (17).png │ ├── image (18).png │ ├── image (19).png │ ├── image (2).png │ ├── image (20).png │ ├── image (21).png │ ├── image (22).png │ ├── image (23).png │ ├── image (24).png │ ├── image (25).png │ ├── image (3) (1).png │ ├── image (3).png │ ├── image (4) (3) (4) (1) (1).png │ ├── image (4) (3) (4) (1) (2).png │ ├── image (4) (3) (4) (1) (3).png │ ├── image (4) (3) (4) (1) (4).png │ ├── image (4) (3) (4) (1) (5).png │ ├── image (4) (3) (4) (1).png │ ├── image (4) (3) (4) (2).png │ ├── image (4) (3) (4) (3).png │ ├── image (4) (3) (4) (4).png │ ├── image (4) (3) (4) (5).png │ ├── image (4) (3) (4) (6).png │ ├── image (4) (3) (4).png │ ├── image (4).png │ ├── image (5) (1).png │ ├── image (5).png │ ├── image (6) (1) (1).png │ ├── image (6) (1) (2).png │ ├── image (6) (1) (3).png │ ├── image (6) (1) (4).png │ ├── image (6) (1) (5).png │ ├── image (6) (1) (6).png │ ├── image (6) (1).png │ ├── image (6).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (1) (1).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (1) (2).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (1) (3).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (1) (4).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (1) (5).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (1) (6).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (1).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (2).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (3).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (4).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (5).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (6).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2) (7).png │ ├── image (7) (1) (2) (2) (2) (2) (2) (2).png │ ├── image (7) (1) (2) (2) (3) (3) (1) (1) (1).png │ ├── image (7) (1) (2) (2) (3) (3) (1) (1) (2).png │ ├── image (7) (1) (2) (2) (3) (3) (1) (1) (3).png │ ├── image (7) (1) (2) (2) (3) (3) (1) (1) (4).png │ ├── image (7) (1) (2) (2) (3) (3) (1) (1).png │ ├── image (7) (1) (2) (2) (3) (3) (1) (2).png │ ├── image (7) (1) (2) (2) (3) (3) (1) (3).png │ ├── image (7) (1) (2) (2) (3) (3) (1) (4).png │ ├── image (7) (1) (2) (2) (3) (3) (1) (5).png │ ├── image (7) (1) (2) (2) (3) (3) (1).png │ ├── image (7) (1).png │ ├── image (7) (3) (3) (3) (1).png │ ├── image (7) (3) (3) (3) (2).png │ ├── image (7) (3) (3) (3) (3).png │ ├── image (7) (3) (3) (3) (4).png │ ├── image (7) (3) (3) (3) (5).png │ ├── image (7) (3) (3) (3) (6).png │ ├── image (7) (3) (3) (3).png │ ├── image (7).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (1) (1).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (1) (2).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (1) (3).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (1) (4).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (1) (5).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (1) (6).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (1).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (2).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (3).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (4).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (5).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (6).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1) (7).png │ ├── image (8) (1) (2) (2) (2) (2) (2) (1).png │ ├── image (8) (2) (2) (2) (2) (1) (1).png │ ├── image (8) (2) (2) (2) (2) (1).png │ ├── image (8) (2) (2) (2) (2) (2).png │ ├── image (8) (2) (2) (2) (2).png │ ├── image (8).png │ ├── image (9).png │ ├── image%20(12).png │ ├── image%20(13)%20(1).png │ ├── image%20(14).png │ ├── image%20(15).png │ ├── image%20(9).png │ ├── image-deso-2-3-.png │ ├── image-deso-2-8-1-2-2-2-2- (1).png │ ├── image-deso-2-8-1-2-2-2-2- (2) (1).png │ ├── image-deso-2-8-1-2-2-2-2- (2).png │ ├── image-deso-2-8-1-2-2-2-2- (3).png │ ├── image-deso-3- (1).png │ ├── image-deso-3-.png │ ├── image-deso-4- (1).png │ ├── image-deso-4- (2) (1).png │ ├── image-deso-4- (2).png │ ├── image-deso-7-1-2-2-2-2- (1).png │ ├── image-deso-7-1-2-2-2-2- (2) (1) (1).png │ ├── image-deso-7-1-2-2-2-2- (2) (1).png │ ├── image-deso-7-1-2-2-2-2- (2).png │ ├── image-deso-7-1-2-2-2-2- (3).png │ ├── image-deso-7-1-2-2-2-2-.png │ ├── image-deso-8-1-2-2-2-2- (1).png │ ├── image-deso-8-1-2-2-2-2- (2).png │ ├── image-deso-8-1-2-2-2-2-.png │ ├── image.png │ ├── image1.png │ ├── installer-checkboxes.PNG │ ├── installer-mac (1) (1).PNG │ ├── installer-mac (1).PNG │ ├── installer-mac (2).PNG │ ├── installer-mac.PNG │ ├── installer-windows (1) (1).PNG │ ├── installer-windows (1).PNG │ ├── installer-windows (2).PNG │ ├── installer-windows.PNG │ ├── mac.PNG │ ├── operating-systems.PNG │ ├── run-sh-1 (1).PNG │ ├── run-sh-1.PNG │ ├── screenshot-from-2021-09-20-14-46-05.png │ ├── skip-tutorial.PNG │ ├── verify-users (2) (2) (2) (3) (1) (1).png │ ├── verify-users (2) (2) (2) (3) (1) (2).png │ ├── verify-users (2) (2) (2) (3) (1) (3).png │ ├── verify-users (2) (2) (2) (3) (1) (4).png │ ├── verify-users (2) (2) (2) (3) (1).png │ ├── verify-users (2) (2) (2) (3) (2).png │ ├── verify-users (2) (2) (2) (3) (3).png │ ├── verify-users (2) (2) (2) (3) (4).png │ ├── verify-users (2) (2) (2) (3) (5).png │ ├── verify-users (2) (2) (2) (3).png │ ├── verify-users-image-deso.png │ ├── win-save.PNG │ └── windows-check.PNG ├── .gitignore ├── README.md ├── SUMMARY.md ├── architecture-overview ├── README.md ├── dev-setup.md └── making-your-first-changes.md ├── bug-bounty.md ├── contact-and-media ├── contact-us.md └── reporting-an-account-or-post.md ├── deso-applications.md ├── deso-backend ├── api │ ├── README.md │ ├── access-group-endpoints.md │ ├── admin-endpoints.md │ ├── associations-endpoints.md │ ├── backend-api.md │ ├── dao-endpoints.md │ ├── media-endpoints.md │ ├── messages-endpoints.md │ ├── miner-endpoints.md │ ├── nft-endpoints.md │ ├── notification-endpoints.md │ ├── post-endpoints.md │ ├── referral-endpoints.md │ ├── social-endpoints.md │ ├── transaction-spending-limits-endpoints.md │ ├── tutorial-endpoints.md │ └── user-endpoints.md ├── configuration │ ├── README.md │ ├── admins.md │ ├── analytics.md │ ├── emails.md │ ├── global-state.md │ ├── hot-feed.md │ ├── media │ │ ├── README.md │ │ ├── images.md │ │ └── videos.md │ ├── onboarding.md │ ├── phone-number-verification.md │ ├── selling-usddeso │ │ ├── README.md │ │ ├── buy-with-btc.md │ │ ├── buy-with-eth.md │ │ └── wyre-buy-with-usd.md │ ├── supply-monitoring.md │ └── web-security.md ├── construct-transactions │ ├── README.md │ ├── access-groups-api.md │ ├── associations-transactions-api.md │ ├── dao-transactions-api.md │ ├── derived-keys-transaction-api.md │ ├── financial-transactions-api.md │ ├── nft-transactions-api.md │ └── social-transactions-api.md └── transaction-utilities.md ├── deso-blockchain ├── bare-metal.md ├── consensus-pow-and-pos.md ├── content-moderation.md ├── infinite-state.md ├── on-chain-data.md ├── privacy-and-security.md └── smart-services.md ├── deso-exchange-listings └── exchange-listing-api.md ├── deso-features ├── associations.md ├── creator-coins.md ├── feeds-and-moderation.md ├── social-nfts.md └── social-tipping.md ├── deso-frontend ├── exchange-listing-api-1.md └── exchange-listing-api.md ├── deso-governance.md ├── deso-identity ├── identity │ ├── README.md │ ├── concepts.md │ └── mobile-integration.md ├── iframe-api │ ├── README.md │ ├── basics.md │ └── endpoints.md └── window-api │ ├── README.md │ ├── basics.md │ └── endpoints.md ├── deso-nfts.md ├── deso-nodes ├── node-staying-up-to-date.md ├── running-a-node.md └── setup.md ├── deso-roadmap.md ├── deso-tech-stack.md ├── deso-tokenomics ├── README.md ├── current-deso-supply.md ├── designed-for-the-end-game.md ├── deso-sinks.md ├── initial-deso-distribution.md ├── no-equity-just-coins-and-code.md └── the-bmf-burn-maximizing-fee-mechanism.md ├── deso-tutorial-build-apps.md ├── deso-validators └── run-a-validator.md ├── faq └── deso-faq.md ├── focus ├── crypto-native-monetization.md ├── decentralizing-social-media.md ├── focus-tokenomics.md ├── how-the-order-book-amms-work.md ├── launching-your-token.md ├── the-next-generation-token-platform.md ├── the-social-airdrop.md └── what-is-focus.md ├── for-node-operators └── node-setup │ └── managing-network-upgrades.md ├── openfund ├── algorithmic-trading │ └── README.md ├── how-do-the-advanced-amms-work.md ├── openfund-governance.md ├── openfund-tokenomics.md ├── the-deso-python-sdk │ ├── README.md │ ├── ai-generating-your-code.md │ ├── creating-deso-testnet-accounts.md │ ├── debugging-tips-and-code-walkthrough.md │ ├── getting-help-from-the-community.md │ ├── market-making-bots.md │ ├── social-ai-agents.md │ └── write-blockchain-bots-with-ai.md └── what-is-openfund.md ├── privacy-and-security.md ├── running-a-node.md ├── the-vision.md └── zhong-wen ├── shen-me-shi-bitclout-what-is-bitclout.md ├── shi-mo-shi-deso-what-is-deso.md └── yuan-jing-the-vision.md /.gitbook/assets/Report Content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Report Content.png -------------------------------------------------------------------------------- /.gitbook/assets/Report User.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Report User.jpg -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-27 at 10.03.58 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-27 at 10.03.58 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-27 at 10.04.24 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-27 at 10.04.24 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-27 at 10.05.19 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-27 at 10.05.19 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-27 at 10.06.13 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-27 at 10.06.13 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-27 at 10.06.47 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-27 at 10.06.47 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-27 at 10.24.28 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-27 at 10.24.28 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-27 at 10.25.14 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-27 at 10.25.14 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-27 at 10.25.54 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-27 at 10.25.54 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-27 at 11.38.16 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-27 at 11.38.16 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-27 at 11.48.00 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-27 at 11.48.00 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-28 at 1.16.49 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-28 at 1.16.49 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-28 at 1.31.57 PM (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-28 at 1.31.57 PM (1).png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-28 at 1.31.57 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-28 at 1.31.57 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-28 at 1.34.58 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-28 at 1.34.58 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-28 at 1.42.12 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-28 at 1.42.12 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-28 at 1.49.49 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-28 at 1.49.49 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-28 at 1.52.57 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-28 at 1.52.57 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2021-12-28 at 1.53.11 PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2021-12-28 at 1.53.11 PM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screen Shot 2023-02-09 at 8.37.51 AM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screen Shot 2023-02-09 at 8.37.51 AM.png -------------------------------------------------------------------------------- /.gitbook/assets/Screenshot from 2021-11-22 01-13-56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screenshot from 2021-11-22 01-13-56.png -------------------------------------------------------------------------------- /.gitbook/assets/Screenshot from 2021-11-25 01-00-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screenshot from 2021-11-25 01-00-47.png -------------------------------------------------------------------------------- /.gitbook/assets/Screenshot from 2021-11-25 01-00-478.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screenshot from 2021-11-25 01-00-478.png -------------------------------------------------------------------------------- /.gitbook/assets/Screenshot from 2021-11-28 15-30-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screenshot from 2021-11-28 15-30-31.png -------------------------------------------------------------------------------- /.gitbook/assets/Screenshot from 2021-11-28 15-44-39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screenshot from 2021-11-28 15-44-39.png -------------------------------------------------------------------------------- /.gitbook/assets/Screenshot from 2021-11-28 15-45-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screenshot from 2021-11-28 15-45-03.png -------------------------------------------------------------------------------- /.gitbook/assets/Screenshot from 2021-11-28 15-45-23 (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screenshot from 2021-11-28 15-45-23 (1).png -------------------------------------------------------------------------------- /.gitbook/assets/Screenshot from 2021-11-28 15-45-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Screenshot from 2021-11-28 15-45-23.png -------------------------------------------------------------------------------- /.gitbook/assets/Untitled (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Untitled (1).png -------------------------------------------------------------------------------- /.gitbook/assets/Untitled (2) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Untitled (2) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/Untitled (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Untitled (2).png -------------------------------------------------------------------------------- /.gitbook/assets/Untitled (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Untitled (3).png -------------------------------------------------------------------------------- /.gitbook/assets/Untitled (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Untitled (4).png -------------------------------------------------------------------------------- /.gitbook/assets/Untitled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/Untitled.png -------------------------------------------------------------------------------- /.gitbook/assets/advanced (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/advanced (1).png -------------------------------------------------------------------------------- /.gitbook/assets/advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/advanced.png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (6).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1) (6).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (6).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (6).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1) (7).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1) (7).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-bitclout-settings (2) (2) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-bitclout-settings (2) (2) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/buy-deso-settings-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/buy-deso-settings-3.png -------------------------------------------------------------------------------- /.gitbook/assets/desoconsole2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/desoconsole2.png -------------------------------------------------------------------------------- /.gitbook/assets/desoconsole3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/desoconsole3.png -------------------------------------------------------------------------------- /.gitbook/assets/desopage1 (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/desopage1 (1).png -------------------------------------------------------------------------------- /.gitbook/assets/desopage1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/desopage1.png -------------------------------------------------------------------------------- /.gitbook/assets/desopage2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/desopage2.png -------------------------------------------------------------------------------- /.gitbook/assets/desopage3 (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/desopage3 (1).png -------------------------------------------------------------------------------- /.gitbook/assets/desopage3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/desopage3.png -------------------------------------------------------------------------------- /.gitbook/assets/docker-toggle-container.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/docker-toggle-container.PNG -------------------------------------------------------------------------------- /.gitbook/assets/git clone updated.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/git clone updated.PNG -------------------------------------------------------------------------------- /.gitbook/assets/git-setup.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/git-setup.PNG -------------------------------------------------------------------------------- /.gitbook/assets/git.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/git.PNG -------------------------------------------------------------------------------- /.gitbook/assets/image (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (10).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (10).png -------------------------------------------------------------------------------- /.gitbook/assets/image (11).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (11).png -------------------------------------------------------------------------------- /.gitbook/assets/image (12).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (12).png -------------------------------------------------------------------------------- /.gitbook/assets/image (13) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (13) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (13).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (13).png -------------------------------------------------------------------------------- /.gitbook/assets/image (14).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (14).png -------------------------------------------------------------------------------- /.gitbook/assets/image (15).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (15).png -------------------------------------------------------------------------------- /.gitbook/assets/image (16).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (16).png -------------------------------------------------------------------------------- /.gitbook/assets/image (17).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (17).png -------------------------------------------------------------------------------- /.gitbook/assets/image (18).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (18).png -------------------------------------------------------------------------------- /.gitbook/assets/image (19).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (19).png -------------------------------------------------------------------------------- /.gitbook/assets/image (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (20).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (20).png -------------------------------------------------------------------------------- /.gitbook/assets/image (21).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (21).png -------------------------------------------------------------------------------- /.gitbook/assets/image (22).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (22).png -------------------------------------------------------------------------------- /.gitbook/assets/image (23).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (23).png -------------------------------------------------------------------------------- /.gitbook/assets/image (24).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (24).png -------------------------------------------------------------------------------- /.gitbook/assets/image (25).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (25).png -------------------------------------------------------------------------------- /.gitbook/assets/image (3) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (3) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4) (1) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4) (1) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4) (1) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4) (1) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4) (1) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4) (1) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4) (1) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4) (1) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4) (6).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4) (6).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4) (3) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4) (3) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (5) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (5) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (5).png -------------------------------------------------------------------------------- /.gitbook/assets/image (6) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (6) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (6) (1) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (6) (1) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (6) (1) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (6) (1) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (6) (1) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (6) (1) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (6) (1) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (6) (1) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/image (6) (1) (6).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (6) (1) (6).png -------------------------------------------------------------------------------- /.gitbook/assets/image (6) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (6) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (6).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (6).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (6).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1) (6).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (6).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (6).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (7).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2) (7).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (2) (2) (2) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (1) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (1) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (1) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (1) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (1) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (1) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1) (2) (2) (3) (3) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (3) (3) (3) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (3) (3) (3) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (3) (3) (3) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (3) (3) (3) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (3) (3) (3) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (3) (3) (3) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (3) (3) (3) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (3) (3) (3) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (3) (3) (3) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (3) (3) (3) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (3) (3) (3) (6).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (3) (3) (3) (6).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7) (3) (3) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7) (3) (3) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (7).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (7).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (6).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1) (6).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (6).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (6).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (7).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1) (7).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (1) (2) (2) (2) (2) (2) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (2) (2) (2) (2) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (2) (2) (2) (2) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (2) (2) (2) (2) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (2) (2) (2) (2) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (2) (2) (2) (2) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (2) (2) (2) (2) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8) (2) (2) (2) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8) (2) (2) (2) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image (8).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (8).png -------------------------------------------------------------------------------- /.gitbook/assets/image (9).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image (9).png -------------------------------------------------------------------------------- /.gitbook/assets/image%20(12).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image%20(12).png -------------------------------------------------------------------------------- /.gitbook/assets/image%20(13)%20(1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image%20(13)%20(1).png -------------------------------------------------------------------------------- /.gitbook/assets/image%20(14).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image%20(14).png -------------------------------------------------------------------------------- /.gitbook/assets/image%20(15).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image%20(15).png -------------------------------------------------------------------------------- /.gitbook/assets/image%20(9).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image%20(9).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-2-3-.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-2-3-.png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-2-8-1-2-2-2-2- (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-2-8-1-2-2-2-2- (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-2-8-1-2-2-2-2- (2) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-2-8-1-2-2-2-2- (2) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-2-8-1-2-2-2-2- (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-2-8-1-2-2-2-2- (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-2-8-1-2-2-2-2- (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-2-8-1-2-2-2-2- (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-3- (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-3- (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-3-.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-3-.png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-4- (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-4- (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-4- (2) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-4- (2) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-4- (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-4- (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-7-1-2-2-2-2- (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-7-1-2-2-2-2- (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-7-1-2-2-2-2- (2) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-7-1-2-2-2-2- (2) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-7-1-2-2-2-2- (2) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-7-1-2-2-2-2- (2) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-7-1-2-2-2-2- (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-7-1-2-2-2-2- (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-7-1-2-2-2-2- (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-7-1-2-2-2-2- (3).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-7-1-2-2-2-2-.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-7-1-2-2-2-2-.png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-8-1-2-2-2-2- (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-8-1-2-2-2-2- (1).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-8-1-2-2-2-2- (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-8-1-2-2-2-2- (2).png -------------------------------------------------------------------------------- /.gitbook/assets/image-deso-8-1-2-2-2-2-.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image-deso-8-1-2-2-2-2-.png -------------------------------------------------------------------------------- /.gitbook/assets/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image.png -------------------------------------------------------------------------------- /.gitbook/assets/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/image1.png -------------------------------------------------------------------------------- /.gitbook/assets/installer-checkboxes.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/installer-checkboxes.PNG -------------------------------------------------------------------------------- /.gitbook/assets/installer-mac (1) (1).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/installer-mac (1) (1).PNG -------------------------------------------------------------------------------- /.gitbook/assets/installer-mac (1).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/installer-mac (1).PNG -------------------------------------------------------------------------------- /.gitbook/assets/installer-mac (2).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/installer-mac (2).PNG -------------------------------------------------------------------------------- /.gitbook/assets/installer-mac.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/installer-mac.PNG -------------------------------------------------------------------------------- /.gitbook/assets/installer-windows (1) (1).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/installer-windows (1) (1).PNG -------------------------------------------------------------------------------- /.gitbook/assets/installer-windows (1).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/installer-windows (1).PNG -------------------------------------------------------------------------------- /.gitbook/assets/installer-windows (2).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/installer-windows (2).PNG -------------------------------------------------------------------------------- /.gitbook/assets/installer-windows.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/installer-windows.PNG -------------------------------------------------------------------------------- /.gitbook/assets/mac.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/mac.PNG -------------------------------------------------------------------------------- /.gitbook/assets/operating-systems.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/operating-systems.PNG -------------------------------------------------------------------------------- /.gitbook/assets/run-sh-1 (1).PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/run-sh-1 (1).PNG -------------------------------------------------------------------------------- /.gitbook/assets/run-sh-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/run-sh-1.PNG -------------------------------------------------------------------------------- /.gitbook/assets/screenshot-from-2021-09-20-14-46-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/screenshot-from-2021-09-20-14-46-05.png -------------------------------------------------------------------------------- /.gitbook/assets/skip-tutorial.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/skip-tutorial.PNG -------------------------------------------------------------------------------- /.gitbook/assets/verify-users (2) (2) (2) (3) (1) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/verify-users (2) (2) (2) (3) (1) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/verify-users (2) (2) (2) (3) (1) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/verify-users (2) (2) (2) (3) (1) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/verify-users (2) (2) (2) (3) (1) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/verify-users (2) (2) (2) (3) (1) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/verify-users (2) (2) (2) (3) (1) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/verify-users (2) (2) (2) (3) (1) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/verify-users (2) (2) (2) (3) (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/verify-users (2) (2) (2) (3) (1).png -------------------------------------------------------------------------------- /.gitbook/assets/verify-users (2) (2) (2) (3) (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/verify-users (2) (2) (2) (3) (2).png -------------------------------------------------------------------------------- /.gitbook/assets/verify-users (2) (2) (2) (3) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/verify-users (2) (2) (2) (3) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/verify-users (2) (2) (2) (3) (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/verify-users (2) (2) (2) (3) (4).png -------------------------------------------------------------------------------- /.gitbook/assets/verify-users (2) (2) (2) (3) (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/verify-users (2) (2) (2) (3) (5).png -------------------------------------------------------------------------------- /.gitbook/assets/verify-users (2) (2) (2) (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/verify-users (2) (2) (2) (3).png -------------------------------------------------------------------------------- /.gitbook/assets/verify-users-image-deso.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/verify-users-image-deso.png -------------------------------------------------------------------------------- /.gitbook/assets/win-save.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/win-save.PNG -------------------------------------------------------------------------------- /.gitbook/assets/windows-check.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deso-protocol/docs/975469778609c3db8c308537f3fec71068475026/.gitbook/assets/windows-check.PNG -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | -------------------------------------------------------------------------------- /architecture-overview/dev-setup.md: -------------------------------------------------------------------------------- 1 | # Setup a Node & Frontend Locally 2 | 3 | This doc will teach you how to set up your dev environment.\ 4 | \ 5 | Although it's not a hard prerequisite, we recommend skimming the [DeSo Code Walkthrough](broken-reference) first, as it provides some useful context. 6 | 7 | ## Prerequisites 8 | 9 | To run the frontend repo, you will need to be running **Node v13.13.0** and **NPM 6.14.4.**\ 10 | \ 11 | We recommend using NVM to set this environment up. To run the backend you'll need Go v1.15.6 installed.\ 12 | \ 13 | These can be installed via [homebrew](https://brew.sh/) by running: 14 | 15 | ```bash 16 | brew install nvm 17 | # follow the output to set up your ~/.nvm folder, nvm script, and shell completion 18 | nvm install 13 19 | # check the versions 20 | node -v 21 | npm -v 22 | # then install go 23 | brew install go@1.15 24 | # check the version 25 | go version 26 | ``` 27 | 28 | \ 29 | We will also assume that you have [Goland](https://www.jetbrains.com/go/) installed. This is the recommended IDE for developing on DeSo since most of the code is Go code.\ 30 | 31 | 32 | Another prerequisite is [vips](https://github.com/libvips/libvips) which can be installed with [homebrew](https://brew.sh/) – `brew install vips` – or `apt install libvips-tools` on Ubuntu.\ 33 | 34 | 35 | ## Setup 36 | 37 | First, you must checkout all repos into the same directory.\ 38 | \ 39 | Some of these repos are technically optional, but checking them all out allows you to hop around the code more easily. 40 | 41 | ``` 42 | cd $WORKING_DIRECTORY 43 | git clone https://github.com/deso-protocol/core.git 44 | git clone https://github.com/deso-protocol/backend.git 45 | git clone https://github.com/deso-protocol/frontend.git 46 | git clone https://github.com/deso-protocol/identity.git 47 | ``` 48 | 49 | Once all of these repos are checked out, we recommend importing them into a single Goland project. This allows you search across and develop on all of of the repos concurrently.\ 50 | \ 51 | To do this, open **Goland, hit File > Open**, select a repo folder, and select "**Attach**" when prompted.\ 52 | \ 53 | If you do this correctly, you should have all four repos loaded into a single Goland project. 54 | 55 | If you're not familiar with Goland, the following hotkeys are useful for jumping around the code ([full cheat sheet here](https://www.jetbrains.com/help/go/mastering-keyboard-shortcuts.html)): 56 | 57 | * **SHIFT+SHIFT:** Open any file across all four repos with fuzzy search. 58 | * **CTRL+SHIFT+F:** Search across all four repos at once with regexes. 59 | * **CTRL+SHIFT+A:** Runs any action that you would normally find in a menu. 60 | * **CTRL+B:** Jump to definition or find usages. 61 | 62 | If you like Vim, you can also install the Vim plugin so you get your typical Vim hotkeys.\ 63 | 64 | 65 | ## Building and running locally 66 | 67 | ### Running the frontend in development mode 68 | 69 | ``` 70 | # Assume we're starting in $WORKING_DIRECTORY, which contains all the repos 71 | cd frontend 72 | npm install 73 | 74 | # The following command will serve the frontend on localhost:4200 with 75 | # auto-reloading on changes. You must run a node before the site will 76 | # actually work however (see next section). 77 | npm start 78 | ``` 79 | 80 | 81 | 82 | ### Running the node in testnet mode 83 | 84 | ``` 85 | # Assume we're starting in $WORKING_DIRECTORY, which contains all the 86 | # repos. Also assume we have "ng serve" running. 87 | cd backend/scripts/nodes 88 | 89 | # The n0_test script runs a testnet blockchain locally. It starts mining 90 | # blocks immediately at a much faster rate than mainnet. You can set your 91 | # public key to receive the block rewards by setting it as --miner-public-key 92 | # in the arguments. This gives you funds that you can test with. You can see 93 | # the status of the node by going to the Admin tab after logging in with an 94 | # account and then going to the Network subtab. 95 | export CGO_CFLAGS_ALLOW="-Xpreprocessor" 96 | ./n0_test 97 | 98 | # Once n0_test is running, you must navigate to the following URL. 4200 is the 99 | # port for ng serve. Note that in order to be 100 | http://localhost:4200 101 | ``` 102 | 103 | \ 104 | By default, your browser will point at `localhost:17001`, which is the default "mainnet" API port. \ 105 | \ 106 | However, when you run n0\_test, your node spins up on `localhost:18001`.\ 107 | \ 108 | To point your frontend at your testnet node, however, you must open up your inspector and change your `lastLocalNodev2` parameter to `localhost:18001` as shown in the screenshot below.\ 109 | \ 110 | After you do this, you should be able to Sign Up, and everything should work normally.\ 111 | 112 | 113 | ![](../../.gitbook/assets/desoconsole2.png) 114 | 115 | ### Running the node in mainnet mode 116 | 117 | Most of the time, we develop using testnet mode because it's fast and cheap.\ 118 | \ 119 | However, to make sure our changes work before pushing we like to run full-blown mainnet nodes locally. 120 | 121 | ``` 122 | # Assume we're starting in $WORKING_DIRECTORY, which contains all the repos. 123 | # Also assume we have "ng serve" running. 124 | cd backend/scripts/nodes 125 | 126 | # The n0 script runs a node that connects to mainnet peers. It will download 127 | # all the blocks from its peers and then start syncing its mempool from them. 128 | # You can see the status of the node by going to the Admin tab after 129 | # logging in with an account and then going to the Network subtab. Note that 130 | # syncing the blockchain may take an hour or so. 131 | $ ./n0 132 | 133 | # Once n0 is running, you must navigate to the following URL. 4200 is the 134 | # ng serve port. It should automatically hit your node, which should be 135 | # exposing its API at localhost:17001. 136 | http://localhost:4200 137 | ``` 138 | 139 | ## Running a local identity service (optional) 140 | 141 | Running an identity service locally is generally not required.\ 142 | \ 143 | However, doing so is as easy as running the Angular app: 144 | 145 | ``` 146 | # Assume we're starting in $WORKING_DIRECTORY, which contains all the repos 147 | cd identity 148 | npm install 149 | 150 | # Install angular cli 151 | sudo npm install -g @angular/cli typescript tslint dep 152 | 153 | # The following command will serve identity on localhost:4201 with 154 | # auto-reloading on changes. 155 | ng serve --port 4201 156 | ``` 157 | 158 | In order to point your browser at your local identity service rather than at identity.deso.org, you must change a localStorage value similar to what we did to get the testnet node running.\ 159 | \ 160 | In this case, we must change `lastIdentityServiceURL` to `http://localhost:4201`.\ 161 | \ 162 | See the screenshot below: 163 | 164 | ![](../../.gitbook/assets/desoconsole3.png) 165 | -------------------------------------------------------------------------------- /architecture-overview/making-your-first-changes.md: -------------------------------------------------------------------------------- 1 | # Making Your First Changes 2 | 3 | In this tutorial, we will show you how to make changes to the DeSo codebase, and see your changes reflected in a local dev environment. 4 | 5 | ## Prerequisites 6 | 7 | This guide assumes you have successfully made it through [**Setting Up Your Dev Environment**](broken-reference).\ 8 | \ 9 | In particular, it assumes you have a testnet node running with n0\_test showing a frontend UI that looks roughly like the following screenshot: 10 | 11 | ![](../../.gitbook/assets/desopage1.png) 12 | 13 | ## Make Your First Frontend Change 14 | 15 | If your frontend repo is loaded into Goland, the following steps should allow you to make your first frontend change, and see it update your local node in real time:\ 16 | 17 | 18 | * Run your n0\_test. Create an account and make sure you can see the page shown in the prerequisites.\ 19 | 20 | * Assuming you're using Goland, navigate to the `feed.component.ts`. Hint: You can use SHIFT+SHIFT to easily jump to it.\ 21 | 22 | * Look for the `GLOBAL_TAB` function in the file and modify the return statement as follows (you can name your feed whatever you want):\ 23 | 24 | * `static GLOBAL_TAB = "Satoshi's Feed";`\ 25 | 26 | * Save your changes. 27 | 28 | \ 29 | After your changes are saved, your browser should update to show a new title for your feed tab: 30 | 31 | ![](../../.gitbook/assets/desopage2.png) 32 | 33 | ## Make Your First Backend Change 34 | 35 | The backend repo runs an API that the frontend Angular app queries to get all of the information it displays. Let's make our first change to this API by following the steps below:\ 36 | 37 | 38 | * Before going into the code, go to the Admin panel, add a post to the global feed, and verify that it shows up by refreshing the page.\ 39 | 40 | * With the backend repo loaded in Goland, find the `post.go` file, which defines one of the API endpoints queried by the frontend. Hint: You can use SHIFT+SHIFT to navigate to it.\ 41 | 42 | * In that file, find a function called `GetPostsStateless`. Modify the response at the end of the function as follows to customize the content:\ 43 | 44 | * ``` 45 | if len(postEntryResponses) > 0 { 46 | postEntryResponses[0].Body = "This is some content" 47 | } 48 | 49 | // Return the posts found. 50 | res := &GetPostsStatelessResponse{ 51 | PostsFound: postEntryResponses, 52 | } 53 | ``` 54 | 55 | 56 | 57 | * Save the file and restart n0\_test. When you make changes to anything in backend or core, you need to restart your node for them to take effect.\ 58 | 59 | 60 | Now you should see some custom content in the post that you added to the feed. You can modify endpoints in backend like this one to customize how data is returned to the user. 61 | 62 | ![](../../.gitbook/assets/desopage3.png) 63 | 64 | ## 65 | 66 | -------------------------------------------------------------------------------- /bug-bounty.md: -------------------------------------------------------------------------------- 1 | # Bug Bounty 2 | 3 | We want the DeSo blockchain to be one of the most secure blockchains in the world, but we need your help. If you're skilled at finding exploits and security vulnerabilities, **please email node.admin+security@protonmail.com so we can share some resources with you and include you in our first bug bounty.**‌ 4 | 5 | ## Rewards 6 | 7 | Hundreds of thousands of users have accounts on the DeSo blockchain, and this section covers the rewards for exploits that compromise the security of those users. Please note that what's in scope may change over time, so **please always check this page for the most up-to-date list of things that are a part of the program.**‌ 8 | 9 | Below is a list of severity levels and reward amounts for each level, as well as examples of exploits at each level. Please note that all reward amounts are ultimately subject to the discretion of the DeSo developer community, and the example exploits below are just a guide. The actual reward amounts may vary depending on the nature of the exploit, but we will try to be as generous as possible. All rewards are payable in Bitcoin or DeSo.‌ 10 | 11 | * **Critical: Up to $50,000 USD** 12 | * Exploit: You can acquire the seed phrases of users from DeSo Identity without them having to perform any special action on an external site. 13 | * The maximum amount will be rewarded if this exploit can impact all currently active users. 14 | * Example: a post containing an XSS attack that extracts seed phrases for all users who load the post in their browser. 15 | * Exploit: You are able to print money. 16 | * The maximum amount will be rewarded if this exploit can result in the actual blockchain becoming corrupted. Corrupting the mempool is a lower-severity issue. In order to be considered critical, the exploit must result in the state of the actual blockchain being corrupted. 17 | * Example: you create a transaction that prints DeSo and mines into the chain. 18 | * Example: you buy and sell a creator coin in a way that prints DeSo 19 | * **High: Up to $25,000 USD** 20 | * Exploit: You can steal money from users using DeSo Identity Service without them having to perform any special action external to the site. However, you are unable to compromise the seed phrases of these users. 21 | * The maximum amount will be rewarded if this exploit can impact all currently active users. 22 | * Example: a post containing an XSS attack that sends all of a user's money to your wallet when they view the post in their browser. 23 | * The reason this is a "High" severity issue rather than a "Critical" severity issue is because an exploit like this could theoretically be reverted by a hard fork, similar to what Ethereum devs implemented during the DAO hack. 24 | * Exploit: You are able to steal money from users, but they have to perform some trivial action on another website. 25 | * This will receive a lower amount than an exploit that requires no activity on an external site. 26 | * Example: a user presses a button on evil.com that steals all of the user's funds. 27 | * Exploit: You can bring the entire DeSo network down with minimal resources. 28 | * Example: a corrupt transaction causes all machines that receive it to crash-loop repeatedly. 29 | * **Medium: Up to $1,000 USD** 30 | * Exploit: You can cause DeSo nodes to lose at least one hour of transactions. 31 | * The maximum amount will be rewarded if this exploit can be executed with minimal resources. Attacks that require a lot of resources, like the possession of a botnet, are ineligible. 32 | * Example: submitting a simple corrupt transaction to the mempool that causes all transactions to become invalid. 33 | * Exploit: You are able to perform low-value actions \(post, like, etc\) on behalf of users on the site. 34 | * Exploit: You can cause weird and confusing behavior that is mostly harmless to the blockchain. 35 | * Example: [The Salomon bug](https://diamondapp.com/u/salomon), which causes prices to display incorrectly but doesn't allow users to print DeSo or creator coins. 36 | 37 | ## Claiming a Bounty 38 | 39 | In order to be eligible to receive a bounty you must fully disclose an exploit to the DeSo developer community by emailing **node.admin+security@protonmail.com** Below are some guidelines for disclosing your exploit:‌ 40 | 41 | * You must be the first person to report an issue. If you are not the first person to report an issue the developer community may award a consolation prize at its discretion. 42 | * Additionally, if you report an issue that the developer community is already aware of or is actively fixing, then you are not eligible to receive a bounty. 43 | * You must include clear steps to reproduce the issue and be willing to answer any questions the developer community has regarding your exploit. This is required in order to fix the exploit and protect DeSo users as quickly as possible. 44 | * If your exploit cannot be reproduced or you cannot provide some evidence that the exploit is real, you will not be eligible for a bounty. 45 | * You must allow 60 days for the developer community to evaluate and fix whatever you've discovered _before_ disclosing the exploit publicly. 46 | * Disclosing your exploit publicly in less than 60 days could not only result in harm to users, but it will also make you ineligible for the bounty. 47 | * Once your exploit is verified you will be asked for a DeSo or Bitcoin address to receive payment. 48 | 49 | We understand that the disclosure process described above requires you to put some faith in the judgement of the DeSo developer community. For some reports it may not be clear how severe the exploit is or how much of a reward the reporter should receive. In these instances, we ask that you are patient with us as we refine the scope of exploits we're looking for and trust that we will be generous when an exploit is in a grey area. 50 | -------------------------------------------------------------------------------- /contact-and-media/contact-us.md: -------------------------------------------------------------------------------- 1 | # 📬 Contact US 2 | 3 |
ChannelEmail
Supportsupport@deso.org
Securitysupport+security@deso.org
4 | -------------------------------------------------------------------------------- /contact-and-media/reporting-an-account-or-post.md: -------------------------------------------------------------------------------- 1 | # ⚠ Reporting an Account or Post 2 | 3 | * The best way to report a post or account is to do so via our “Report” buttons. This method allows us to keep a record of every public key that is reported so we can reverse search blacklisted accounts if needed. \ 4 | 5 | * At this time, you **will not** be notified if the post or account you reported has been hidden from the main node or not. You can expect your reported account or post has been reviewed 24 hours from the initial report. \ 6 | 7 | * If you would like to know the status of an account or post you have reported, you can actively reach out regarding a specific case at support@deso.org.\ 8 | 9 | * **Support will no longer be reviewing any reported scams in Discord.** When one-off accounts are reported in Discord, there exists no record of account removal as they don’t get entered into the excel spreadsheet that keeps track of all reported public keys. 10 | 11 | ### What posts or accounts do we hide from the main node? 12 | 13 | * We only hide accounts or posts that violate federal or state guidelines. This is anything from imposter accounts, accounts minting/selling unoriginal artwork, nsfw, child pornography, etc. We do not hide accounts that are posting offensive content or other acts that are not illegal in nature. 14 | 15 | ### How do I report an account or post? 16 | 17 | 1. **To report a post,** look for “Report Content” button after clicking on the 3 dots in the top right hand corner the post.\ 18 | \ 19 | You will be directed to a short form to complete the report. 20 | 21 | ![](<../.gitbook/assets/Report Content.png>) 22 | 23 | 1. **To report an account**, look for the “Report User” button on the profile to reach a short form to file a report. Add a link to the real account in the form to report an imposter account. If there’s no link, add an explanation. 24 | 25 | ![](<../.gitbook/assets/Report User.jpg>) 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /deso-backend/api/admin-endpoints.md: -------------------------------------------------------------------------------- 1 | # Admin Endpoints 2 | 3 | ## Admin Node Endpoints 4 | 5 | ### Node Control 6 | 7 | ``` 8 | POST /api/v0/admin/node-control 9 | ``` 10 | 11 | 12 | 13 | ### Get Mempool Stats 14 | 15 | ``` 16 | POST /api/v0/admin/get-mempool-stats 17 | ``` 18 | 19 | TODO 20 | 21 | 22 | 23 | ## Admin Transaction Endpoints 24 | 25 | ### Get Global Params 26 | 27 | ``` 28 | POST /api/v0/admin/get-global-params 29 | ``` 30 | 31 | TODO 32 | 33 | ### Update Global Params 34 | 35 | ``` 36 | POST /api/v0/admin/update-global-params 37 | ``` 38 | 39 | TODO 40 | 41 | ### Swap Identity 42 | 43 | ``` 44 | POST /api/v0/admin/swap-identity 45 | ``` 46 | 47 | TODO 48 | 49 | ## Admin User Endpoints 50 | 51 | ### Update User Global Metadata 52 | 53 | ``` 54 | POST /api/v0/admin/update-user-global-metadata 55 | ``` 56 | 57 | TODO 58 | 59 | ### Get All User Global Metadata 60 | 61 | ``` 62 | POST /api/v0/admin/get-all-user-global-metadata 63 | ``` 64 | 65 | TODO 66 | 67 | ### Get User Global Metadata 68 | 69 | ``` 70 | POST /api/v0/admin/get-user-global-metadata 71 | ``` 72 | 73 | TODO 74 | 75 | ### Grant Verification Badge 76 | 77 | ``` 78 | POST /api/v0/admin/grant-verification-badge 79 | ``` 80 | 81 | TODO 82 | 83 | ### Remove Verification Badge 84 | 85 | ``` 86 | POST /api/v0/admin/remove-verification-badge 87 | ``` 88 | 89 | TODO 90 | 91 | ### Get Verified Users 92 | 93 | ``` 94 | POST /api/v0/admin/get-verified-users 95 | ``` 96 | 97 | TODO 98 | 99 | ### Get Username Verification Audit Logs 100 | 101 | ``` 102 | POST /api/v0/admin/get-username-verification-audit-logs 103 | ``` 104 | 105 | TODO 106 | 107 | ## Admin Feed Endpoints 108 | 109 | ### Update Global Feed 110 | 111 | ``` 112 | POST /api/v0/admin/update-global-feed 113 | ``` 114 | 115 | TODO 116 | 117 | ### Pin Post 118 | 119 | ``` 120 | POST /api/v0/admin/pin-post 121 | ``` 122 | 123 | TODO 124 | 125 | ### Remove Nil Posts 126 | 127 | ``` 128 | POST /api/v0/admin/remove-nil-posts 129 | ``` 130 | 131 | TODO 132 | -------------------------------------------------------------------------------- /deso-backend/api/backend-api.md: -------------------------------------------------------------------------------- 1 | # Meta Data Endpoints 2 | 3 | ## General Endpoints 4 | 5 | ### Health Check 6 | 7 | ``` 8 | GET /api/v0/health-check 9 | ``` 10 | 11 | Check if your DeSo node is synced 12 | 13 | **Parameters:** 14 | 15 | None 16 | 17 | **Response:** 18 | 19 | If node is synced and received all transactions. 20 | 21 | ``` 22 | 200 23 | ``` 24 | 25 | ### Get Exchange Rate 26 | 27 | ``` 28 | GET /api/v0/get-exchange-rate 29 | ``` 30 | 31 | Get DeSo exchange rate, total amount of nanos sold, and Bitcoin exchange rate. 32 | 33 | **Parameters:** 34 | 35 | None 36 | 37 | **Response:** 38 | 39 | ``` 40 | { 41 | "SatoshisPerDeSoExchangeRate":498484, 42 | "NanosSold":8491518125648433, 43 | "USDCentsPerBitcoinExchangeRate":3608200 44 | } 45 | ``` 46 | 47 | ### Get App State 48 | 49 | ``` 50 | POST /api/v0/get-app-state 51 | ``` 52 | 53 | Get state of DeSo App, such as cost of profile creation and diamond level map. Example use in the [frontend](https://github.com/deso-protocol/frontend/blob/96bdf0c/src/app/backend-api.service.ts#L1106) and endpoint implementation in [backend](https://github.com/deso-protocol/backend/blob/47bcc8a/routes/base.go#L86). 54 | 55 | **Parameters** 56 | 57 | None; however, you need to send an empty JSON `{ }`. Otherwise, you will get 400 - Bad Request. More info on the request [here](https://github.com/deso-protocol/backend/blob/47bcc8a/routes/base.go#L63). 58 | 59 | | Name | Type | Description | 60 | | -------------------- | ------ | --------------------------- | 61 | | PublicKeyBase58Check | string | (optional) check public key | 62 | 63 | **Response** 64 | 65 | ``` 66 | { 67 | "AmplitudeKey": "", 68 | "AmplitudeDomain": "api.amplitude.com", 69 | "MinSatoshisBurnedForProfileCreation": 50000, 70 | "IsTestnet": false, 71 | "SupportEmail": "node.admin@protonmail.com", 72 | "ShowProcessingSpinners": true, 73 | "HasStarterDeSoSeed": false, 74 | "HasTwilioAPIKey": false, 75 | "CreateProfileFeeNanos": 10000000, 76 | "CompProfileCreation": false, 77 | "DiamondLevelMap": { 78 | "1": 50000, 79 | "2": 500000, 80 | "3": 5000000, 81 | "4": 50000000, 82 | "5": 500000000, 83 | "6": 5000000000, 84 | "7": 50000000000, 85 | "8": 500000000000 86 | }, 87 | "HasWyreIntegration": false, 88 | "Password": "" 89 | } 90 | ``` 91 | 92 | ## 93 | -------------------------------------------------------------------------------- /deso-backend/api/miner-endpoints.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: >- 3 | Description of endpoints used to get data related to mining on the DeSo 4 | blockchain 5 | --- 6 | 7 | # Miner Endpoints 8 | 9 | {% swagger method="post" path="" baseUrl="/api/v0/get-block-template" summary="Get Block Template" expanded="false" %} 10 | {% swagger-description %} 11 | Get the template for the next block 12 | 13 | Endpoint implementation in [backend](https://github.com/deso-protocol/backend/blob/709cbfbc62cf3a0e6d56c393e555fc277c93fb76/routes/miner.go#L56). 14 | 15 | Example usages in frontend:\ 16 | \- Make request to [Get Block Template](https://github.com/deso-protocol/frontend/blob/e006beb72867f6d48a78adb1d126c66144a4298c/src/app/backend-api.service.ts#L584)\ 17 | \- Use GetBlockTemplate to [show stats on the next block in the admin panel](https://github.com/deso-protocol/frontend/blob/e006beb72867f6d48a78adb1d126c66144a4298c/src/app/admin/admin.component.ts#L405) 18 | {% endswagger-description %} 19 | 20 | {% swagger-parameter in="body" name="PublicKeyBase58Check" type="String" required="true" %} 21 | Public key to swap in for the block reward 22 | {% endswagger-parameter %} 23 | 24 | {% swagger-parameter in="body" required="true" type="int64" name="NumHeaders" %} 25 | Number of headers (and extra nonces) requested 26 | {% endswagger-parameter %} 27 | 28 | {% swagger-parameter in="body" type="uint32" required="true" name="HeaderVersion" %} 29 | Must be 1, version 0 headers have been deprecated 30 | {% endswagger-parameter %} 31 | 32 | {% swagger-response status="200: OK" description="Successfully retrieved the template for the next block" %} 33 | {% tabs %} 34 | {% tab title="Sample Response" %} 35 | ```json5 36 | { 37 | "BlockID": "27c0be6aba42ae4641c95d9a920399f689450f94388a7ac26c11188eb3b689b0", // Hex of latest block template hash 38 | "DifficultyTargetHex": "000000000000673b615ce18c1f9ddc322745eb8fb6f55b1debefc4bbbaf7db8a", // Hex of the current difficulty target 39 | "ExtraNonces": [1], // extra nonces in the block reward metadata 40 | "Headers": [[1,2,3]], // bytes of the headers of the block 41 | "LatestBlockTemplateStats": { 42 | "TxnCount": 0, // Number of transactions in the block template 43 | "FailingTxnError": "You good", // Reason why the final transaction failed to add. If no error, "You good" returned. 44 | "FailingTxnHash": "Nada", // Hash of final transaction tatempted to be put into the block that failed. If no error, "Nada" returned. 45 | "FailingTxnMinutesSinceAdded": 0, // Time since the failing transaction was added to the mempool 46 | "FailingTxnOriginalTimeAdded": "2021-12-07T16:22:47.018211613Z" // The time of the first block in which the failed transaction was added. 47 | } 48 | } 49 | ``` 50 | {% endtab %} 51 | 52 | {% tab title="Response Field Descriptions" %} 53 | ...coming soon! See comments in sample response for descriptions for now. 54 | {% endtab %} 55 | {% endtabs %} 56 | {% endswagger-response %} 57 | 58 | {% swagger-response status="400: Bad Request" description="" %} 59 | ```javascript 60 | { 61 | // Response 62 | } 63 | ``` 64 | {% endswagger-response %} 65 | {% endswagger %} 66 | 67 | {% swagger method="post" path="" baseUrl="/api/v0/submit-block" summary="Submit Block" %} 68 | {% swagger-description %} 69 | Submits block to be processed by node's block producer 70 | 71 | Endpoint implementation in [backend](https://github.com/deso-protocol/backend/blob/709cbfbc62cf3a0e6d56c393e555fc277c93fb76/routes/miner.go#L125). 72 | {% endswagger-description %} 73 | 74 | {% swagger-parameter in="body" name="PublicKeyBase58Check" required="true" type="String" %} 75 | Public key to swap in for the block reward 76 | {% endswagger-parameter %} 77 | 78 | {% swagger-parameter in="body" name="Header" type="Byte[]" required="true" %} 79 | Bytes of MsgDeSoHeader to be used in block 80 | {% endswagger-parameter %} 81 | 82 | {% swagger-parameter in="body" name="ExtraNonce" type="uint64" required="true" %} 83 | Extra data nonce to be used in the block reward transaction 84 | {% endswagger-parameter %} 85 | 86 | {% swagger-parameter in="body" name="BlockID" type="String" required="true" %} 87 | ID of block to be looked up from the block producer 88 | {% endswagger-parameter %} 89 | 90 | {% swagger-response status="200: OK" description="Successfully submitted block to be processed" %} 91 | {% tabs %} 92 | {% tab title="Sample Response" %} 93 | ```json5 94 | { 95 | "IsMainChain": true, // If true, this is a block for the mainchain. If false, this is a block for testnet. 96 | "IsOrphan": false, // If true, this is an orphan block. If false, this block is not an orphan. 97 | } 98 | ``` 99 | {% endtab %} 100 | 101 | {% tab title="Response Field Descriptions" %} 102 | ...coming soon! See comments in sample response for descriptions for now. 103 | {% endtab %} 104 | {% endtabs %} 105 | {% endswagger-response %} 106 | 107 | {% swagger-response status="400: Bad Request" description="" %} 108 | ```javascript 109 | { 110 | // Response 111 | } 112 | ``` 113 | {% endswagger-response %} 114 | {% endswagger %} 115 | -------------------------------------------------------------------------------- /deso-backend/api/transaction-spending-limits-endpoints.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: >- 3 | Description of endpoints used to get data related to transaction spending 4 | limits on the DeSo blockchain 5 | --- 6 | 7 | # Transaction Spending Limits Endpoints 8 | 9 | ## Get Transaction Spending Limit Response From Hex 10 | 11 | `GET` `/api/v0/get-transaction-spending-limit-response-from-hex/{transactionSpendingLimitHex}` 12 | 13 | This endpoint converts a hex string representing a TransactionSpendingLimit object into a client-friendly [#transactionspendinglimitresponse](./#transactionspendinglimitresponse "mention") object. This is mainly used by identity to parse the transaction spending limit from extra data of an [#authorize-derived-key](../construct-transactions/derived-keys-transaction-api.md#authorize-derived-key "mention") transaction to show the user the permissions they are granting to a derived key. 14 | 15 | #### Path Parameters 16 | 17 | | Name | Type | Description | 18 | | ------------------------------------------------------------- | ------ | -------------------------------------------------- | 19 | | transactionSpendingLimitHex\* | String | Hex string representing a TransactionSpendingLimit | 20 | 21 | {% tabs %} 22 | {% tab title="200: OK Successfully retrieved a TransactionSpendingLimitResponse from the provided hex" %} 23 | {% tabs %} 24 | {% tab title="Sample Response" %} 25 | ```json5 26 | { 27 | // See the TransactionSpendingLimitResponse description in DataTypes for more details 28 | } 29 | ``` 30 | {% endtab %} 31 | 32 | {% tab title="Response Field Descriptions" %} 33 | ...coming soon! See comments in sample response for descriptions for now. 34 | {% endtab %} 35 | {% endtabs %} 36 | {% endtab %} 37 | 38 | {% tab title="400: Bad Request " %} 39 | ```javascript 40 | { 41 | // Response 42 | } 43 | ``` 44 | {% endtab %} 45 | {% endtabs %} 46 | 47 | ## Get Transaction Spending Limit Hex String 48 | 49 | `POST` `/api/v0/get-transaction-spending-limit-hex-string` 50 | 51 | This endpoint converts a [#transactionspendinglimitresponse](./#transactionspendinglimitresponse "mention") into a hex string. This is mainly used by identity to convert the object into the form needed to generate an access signature at the [#derive](../../deso-identity/window-api/endpoints.md#derive "mention") endpoint. 52 | 53 | #### Request Body 54 | 55 | | Name | Type | Description | 56 | | ---------------------------------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | 57 | | TransactionSpendingLimit\* | TransactionSpendingLimitResponse | The [#transactionspendinglimitresponse](./#transactionspendinglimitresponse "mention") for which you wish to retrieve the hex string. | 58 | 59 | {% tabs %} 60 | {% tab title="200: OK Successfully retrieve the hex string for the provided TransactionSpendingLimitResponse object" %} 61 | {% tabs %} 62 | {% tab title="Sample Response" %} 63 | ```json5 64 | { 65 | "HexString": "80d0dbc3f40202020a16010b210000000000000000000000000000000000000000000000000000000000000000000005210210ec74e153aa5c18167dc089030e922cbbfa439acb2051e3f1d4222a33ca417701858af9c3012102397b1a80eba0a60644650af13c2a6ffdfbbf38830cafc34937a75ddd44b8ce52010a2102397b1a80eba0a60644650af13c2a6ffdfbbf38830cafc34937a75ddd44b8ce52030221029380f3d890348085a22e07d8daad9f1f3706767bfdd59337641c4d3231046509010421029380f3d890348085a22e07d8daad9f1f3706767bfdd59337641c4d3231046509037b2102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c4500032103f016bef71b72d07ececebc62af189da31c3fa0359d142d732c54c2e2c466915a00e4b0022103f016bef71b72d07ececebc62af189da31c3fa0359d142d732c54c2e2c466915a0198ce0b2103f016bef71b72d07ececebc62af189da31c3fa0359d142d732c54c2e2c466915a028ef0072103f016bef71b72d07ececebc62af189da31c3fa0359d142d732c54c2e2c466915a03904e042102397b1a80eba0a60644650af13c2a6ffdfbbf38830cafc34937a75ddd44b8ce5200022102397b1a80eba0a60644650af13c2a6ffdfbbf38830cafc34937a75ddd44b8ce52050a2102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c4500022102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c45050a0a200000000000000000000000000000000000000000000000000000000000000000000202200000000000000000000000000000000000000000000000000000000000000000000305203e42215a120a6e9d4848117f5829a2c4d9f692360fd14b78daea483a72d142dc000302203e42215a120a6e9d4848117f5829a2c4d9f692360fd14b78daea483a72d142dc010004203e42215a120a6e9d4848117f5829a2c4d9f692360fd14b78daea483a72d142dc020002203e42215a120a6e9d4848117f5829a2c4d9f692360fd14b78daea483a72d142dc03020a203e42215a120a6e9d4848117f5829a2c4d9f692360fd14b78daea483a72d142dc040102203e42215a120a6e9d4848117f5829a2c4d9f692360fd14b78daea483a72d142dc050003203e42215a120a6e9d4848117f5829a2c4d9f692360fd14b78daea483a72d142dc060402203e42215a120a6e9d4848117f5829a2c4d9f692360fd14b78daea483a72d142dc070603" 66 | } 67 | ``` 68 | {% endtab %} 69 | 70 | {% tab title="Response Field Descriptions" %} 71 | ...coming soon! See comments in sample response for descriptions for now. 72 | {% endtab %} 73 | {% endtabs %} 74 | {% endtab %} 75 | 76 | {% tab title="400: Bad Request " %} 77 | ```javascript 78 | { 79 | // Response 80 | } 81 | ``` 82 | {% endtab %} 83 | {% endtabs %} 84 | -------------------------------------------------------------------------------- /deso-backend/configuration/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Overview of the configuration flags for running your own backend 3 | --- 4 | 5 | # 1️⃣ Backend: Config 6 | 7 | **Core Protocol:** Trying to build the next great social app on top of the DeSo blockchain or running a node and want to know the ins-and-outs of all the endpoints? 8 | 9 | This section is for you. 10 | 11 | Compared to private, monopolized Web2 social media, all of the data on the DeSo blockchain is public and lives on-chain. 12 | 13 | This means that **anybody can access this information and build their own application** using that data. 14 | 15 | However, blockchains require transactions and cryptography to validate information. 16 | 17 | We know this can be a hassle, so we've built this API along with the [Broken link](broken-reference "mention") service to make it easy for you, the developer, to focus on what matters: building your application. 18 | 19 | There is no need to define and maintain your own database schema and write logic to extract data from the chain to get started building and writing and reading new data on-chain. 20 | 21 | To write data to the blockchain, all you need is the Backend API, which you can use to construct transactions with the[construct-transactions](../construct-transactions/ "mention") and then submit them with [#submit-a-transaction](../transaction-utilities.md#submit-a-transaction "mention") endpoint, and Identity, which you can use to [#sign](../../deso-identity/iframe-api/endpoints.md#sign "mention") transactions. 22 | 23 | To read data, you can use our [api](../api/ "mention") endpoints to retrieve everything you need. 24 | 25 | As a developer, all you need to do is implement the frontend (or modify the reference implementation) and any custom logic around the data you receive from the backend endpoints. 26 | 27 | If you're running your own node and using the reference backend implementation, there are a wide variety of flags that are available to you to manage behavior and functionality on your node. 28 | 29 | Each section below describes a set of flags related to certain functionality. 30 | 31 | -------------------------------------------------------------------------------- /deso-backend/configuration/admins.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to admin access on your node. 3 | --- 4 | 5 | # Admins 6 | 7 | ## Admin Public Keys 8 | 9 | `--admin-public-keys` 10 | 11 | Type: String\[] 12 | 13 | Default: \[] 14 | 15 | A list of public keys which gives users access to the admin panel. If '\*' is specified as a key, anyone can access the admin panel. You can add a space and a comment after every public key and leave a note about who the public key belongs to. Admins can add posts to the global feed, manage the whitelist/blacklist/graylists, among other admin functionality. 16 | 17 | ## Super Admin Public Keys 18 | 19 | `--super-admin-public-keys` 20 | 21 | Type: String\[] 22 | 23 | Default: \[] 24 | 25 | A list of public keys which gives users access to the super admin panel. If '\*' is specified as a key, anyone can access the super admin panel. You can add a space and a comment after every public key and leave a note about who the public key belongs to. Be careful who you grant Super Admin access to - Super admins can manage the reserve price at which you sell DESO, the fee you assess on DESO purchases, among other critical configurations. 26 | -------------------------------------------------------------------------------- /deso-backend/configuration/analytics.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to tracking user analytics on your node 3 | --- 4 | 5 | # Analytics 6 | 7 | ## Amplitude Key 8 | 9 | `--amplitude-key` 10 | 11 | Type: String 12 | 13 | Default: None 14 | 15 | Client-side amplitude key for instrumenting user behavior. 16 | 17 | ## Amplitude Domain 18 | 19 | \--amplitude-domain 20 | 21 | Type: String 22 | 23 | Default: api.amplitude.com 24 | 25 | Deprecated 26 | -------------------------------------------------------------------------------- /deso-backend/configuration/emails.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to sending emails on your node 3 | --- 4 | 5 | # Emails 6 | 7 | Note: You'll need to set up an account with [Sendgrid](https://sendgrid.com/) 8 | 9 | ## Sendgrid API Key 10 | 11 | `--sendgrid-api-key` 12 | 13 | Type: String 14 | 15 | Default: None 16 | 17 | Sendgrid API key 18 | 19 | ## Sendgrid Domain 20 | 21 | `--sendgrid-domain` 22 | 23 | Type: String 24 | 25 | Default: None 26 | 27 | Sendgrid domain 28 | 29 | ## Sendgrid Salt 30 | 31 | `--sendgrid-salt` 32 | 33 | Type: String 34 | 35 | Default: None 36 | 37 | Sendgrid salt for encoding data in emails 38 | 39 | ## Sendgrid From Name 40 | 41 | `--sendgrid-from-name` 42 | 43 | Type: String 44 | 45 | Default: None 46 | 47 | Sendgrid From Name 48 | 49 | ## Sendgrid From Email 50 | 51 | `--sendgrid-from-email` 52 | 53 | Type: String 54 | 55 | Default: None 56 | 57 | Sendgrid From Email 58 | 59 | ## Sendgrid Confirm Email ID 60 | 61 | `--sendgrid-confirm-email-id` 62 | 63 | Type: String 64 | 65 | Default: None 66 | 67 | Sendgrid confirmation email template ID 68 | -------------------------------------------------------------------------------- /deso-backend/configuration/global-state.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to your node's global state database 3 | --- 4 | 5 | # Global State 6 | 7 | ## Global State Remote Node 8 | 9 | `--global-state-remote-node` 10 | 11 | Type: String 12 | 13 | Default: None 14 | 15 | The IP:PORT or DOMAIN:PORT corresponding to a node that can be used to set/get global state. When this is not provided, global state is set/fetched from a local DB. Global state is used to manage things like user data, e.g. emails, that should not be duplicated across multiple nodes. 16 | 17 | ## Global State Remote Secret 18 | 19 | `--global-state-remote-secret` 20 | 21 | Type: String 22 | 23 | Default: None 24 | 25 | When a remote node is being used to set/fetch global state, a secret is also required to restrict access. 26 | 27 | ## Expose Global State 28 | 29 | `--expose-global-state` 30 | 31 | Type: Boolean 32 | 33 | Default: False 34 | 35 | If true, other nodes are able to request exposed attributes of your global state. Currently, this allows other nodes to fetch verified usernames, blacklist, graylist, and posts that have been added to the global feed on your node. 36 | 37 | ## Global State API URL 38 | 39 | `--global-state-api-url` 40 | 41 | Type: String Default: None Example: `--global-state-api-url https://node.deso.org` or `GLOBAL_STATE_API_URL=https://node.deso.org` 42 | 43 | Fully formed URL to use to fetch global state data. Only used if expose-global-state is false. If not provided, use own global state. The URL must point to another node that has `true` for its [#expose-global-state](global-state.md#expose-global-state "mention") value. This will allow you to fetch verified usernames, blacklist, graylist, and posts that have been added to the global feed on the requested URL. 44 | -------------------------------------------------------------------------------- /deso-backend/configuration/hot-feed.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to running the hot feed routine on your node 3 | --- 4 | 5 | # Hot Feed 6 | 7 | ## Run Hot Feed Routine 8 | 9 | `--run-hot-feed-routine` 10 | 11 | Type: Boolean 12 | 13 | Default: False 14 | 15 | If set, runs a go routine that accumulates 'hotness' scores for posts in the last 24hrs. This can be used to serve a 'hot' feed. 16 | -------------------------------------------------------------------------------- /deso-backend/configuration/media/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to uploading media on your node 3 | --- 4 | 5 | # Media 6 | 7 | [images.md](images.md "mention") 8 | 9 | [videos.md](videos.md "mention") 10 | -------------------------------------------------------------------------------- /deso-backend/configuration/media/images.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to uploading images on your node 3 | --- 4 | 5 | # Images 6 | 7 | ## GCP Credentials Path 8 | 9 | `--gcp-credentials-path` 10 | 11 | Type: String 12 | 13 | Default: None 14 | 15 | Path to google credentials necessary to upload to the bucket specified in [#gcp-bucket-name](images.md#gcp-bucket-name "mention") 16 | 17 | ## GCP Bucket Name 18 | 19 | `--gcp-bucket-name` 20 | 21 | Type: String 22 | 23 | Default: None 24 | 25 | Name of bucket to store images 26 | -------------------------------------------------------------------------------- /deso-backend/configuration/media/videos.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to uploading videos on your node 3 | --- 4 | 5 | # Videos 6 | 7 | ## Cloudflare Stream Token 8 | 9 | `--cloudflare-stream-token` 10 | 11 | Type: String 12 | 13 | Default: None 14 | 15 | API Token with Edit access to Cloudflare's stream service 16 | 17 | ## Cloudflare Account ID 18 | 19 | `--cloudflare-account-id` 20 | 21 | Type: String 22 | 23 | Default: None 24 | 25 | Cloudflare Account ID 26 | -------------------------------------------------------------------------------- /deso-backend/configuration/onboarding.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to the Onboarding proces and starter DESO 3 | --- 4 | 5 | # Onboarding 6 | 7 | Note: Starter DESO Seed is required in order to send DESO to users for verifying their phone number or for verifying through Jumio. 8 | 9 | ## Starter DESO Seed 10 | 11 | `--starter-deso-seed` 12 | 13 | Type: String 14 | 15 | Default: None 16 | 17 | Seed phrase that is used to send DESO to users who go through [phone-number-verification.md](phone-number-verification.md "mention") or [Broken link](broken-reference "mention"), and to [#comp-profile-creation](onboarding.md#comp-profile-creation "mention") 18 | 19 | ## Starter DESO Nanos 20 | 21 | `--starter-deso-nanos` 22 | 23 | Type: Integer 24 | 25 | Default: 1000000 26 | 27 | The amount of DESO given for verifying a phone number. Only active if [#starter-deso-seed](onboarding.md#starter-deso-seed "mention") is set and funded. 1000000 nanos = 0.001 DESO 28 | 29 | ## Starter Prefix Nanos Map 30 | 31 | `--starter-prefix-nanos-map` 32 | 33 | Type: String 34 | 35 | Default: None 36 | 37 | A comma-separated list of 'prefix=nanos' mappings, where prefix is a phone number prefix such as "+1". These mappings allow the node operator to specify custom amounts of DESO to users verifying their phone numbers based on the country they're in. This is useful as it is more expensive for attackers to get phone numbers from certain countries. An example string would be '+1=2000000,+2=2000000' which would pay user's with US phone number 0.002 DESO (2000000 nanos) 38 | 39 | ## Comp Profile Creation 40 | 41 | `--comp-profile-creation` 42 | 43 | Type: Boolean 44 | 45 | Default: False 46 | 47 | If true, the public key derived from the [#starter-deso-seed](onboarding.md#starter-deso-seed "mention") will send DESO to a public key when the public key makes a request to [#update-profile](../construct-transactions/social-transactions-api.md#update-profile "mention") to construct an UpdateProfile transaction that creates a profile if the public key has verified their phone number or verified themselves thru the Jumio process. 48 | 49 | ## Min Satoshis For Profile 50 | 51 | `--min-satoshis-for-profile` 52 | 53 | Deprecated 54 | -------------------------------------------------------------------------------- /deso-backend/configuration/phone-number-verification.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to verifying phone numbers with Twilio 3 | --- 4 | 5 | # Phone Number Verification 6 | 7 | Note: All flags below are required in order for the phone number verification service to work properly. You'll need to setup an account with [Twilio](https://www.twilio.com/) 8 | 9 | ## Twilio Account SID 10 | 11 | `--twilio-account-sid` 12 | 13 | Type: String 14 | 15 | Default: None 16 | 17 | Twilio account SID (string id). Twilio is used for sending verification texts. See [twilio documentation](https://www.twilio.com/docs/verify/api/verification) for more info. 18 | 19 | ## Twilio Auth Token 20 | 21 | `--twilio-auth-token` 22 | 23 | Type: String 24 | 25 | Default: None 26 | 27 | Twilio authentication token. See [twilio documentation](https://www.twilio.com/docs/verify/api/verification) for more info. 28 | 29 | ## Twilio Verify Service ID 30 | 31 | `--twilio-verify-service-id` 32 | 33 | Type: String 34 | 35 | Default: None 36 | 37 | ID for a verify service configured within Twilio (used for verification texts) 38 | -------------------------------------------------------------------------------- /deso-backend/configuration/selling-usddeso/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to selling DESO on your Node 3 | --- 4 | 5 | # Selling $DESO 6 | 7 | Note: [#buy-deso-seed](./#buy-deso-seed "mention") is required for purchasing via all three methods: 8 | 9 | * [wyre-buy-with-usd.md](wyre-buy-with-usd.md "mention") 10 | * [buy-with-btc.md](buy-with-btc.md "mention") 11 | * [buy-with-eth.md](buy-with-eth.md "mention") 12 | 13 | ## Buy DESO Seed 14 | 15 | `--buy-deso-seed` 16 | 17 | Type: String 18 | 19 | Default: None 20 | 21 | Seed phrase from which DESO will be sent for orders placed through Wyre and 'Buy With BTC' and 'Buy with ETH' purchases 22 | -------------------------------------------------------------------------------- /deso-backend/configuration/selling-usddeso/buy-with-btc.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to selling DESO for BTC on your Node 3 | --- 4 | 5 | # Buy with BTC 6 | 7 | ## Buy DESO BTC Address 8 | 9 | `--buy-deso-btc-address` 10 | 11 | Type: String 12 | 13 | Default: None 14 | 15 | BTC Address that will receive BTC for all Wyre Wallet Orders and 'Buy With BTC' purchases 16 | 17 | ## BlockCypher API Key 18 | 19 | `--block-cypher-api-key` 20 | 21 | Type: String 22 | 23 | Default: None 24 | 25 | When specified, this key is used to power the BitcoinExchange flow and to check for double-spends in the mempool 26 | -------------------------------------------------------------------------------- /deso-backend/configuration/selling-usddeso/buy-with-eth.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to selling DESO for ETH on your Node 3 | --- 4 | 5 | # Buy with ETH 6 | 7 | ## Buy DESO ETH Address 8 | 9 | `--buy-deso-eth-address` 10 | 11 | Type: String 12 | 13 | Default: None 14 | 15 | ETH Address which will receive ETH for all 'Buy With ETH' purchases 16 | 17 | ## Infura Project ID 18 | 19 | `--infura-project-id` 20 | 21 | Type: String 22 | 23 | Default: None 24 | 25 | Project ID for Infura requests. Infura is used to make requests to [ETH's JSON RPC API.](https://eth.wiki/json-rpc/API) Create a new project at [https://infura.io/](https://infura.io/) 26 | -------------------------------------------------------------------------------- /deso-backend/configuration/selling-usddeso/wyre-buy-with-usd.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to selling DESO for BTC with Wyre on your Node 3 | --- 4 | 5 | # Wyre - Buy with USD 6 | 7 | Note: You will need to work with [Wyre](https://www.sendwyre.com/) in order to set up an integration. Wyre will take credit card payment from your users and in exchange send you BTC to the address specified at [#buy-deso-btc-address](buy-with-btc.md#buy-deso-btc-address "mention") 8 | 9 | ## Wyre URL 10 | 11 | `--wyre-url` 12 | 13 | Type: String 14 | 15 | Default: None 16 | 17 | Wyre API URL. For production purposes, this should be [https://api.sendwyre.com](https://api.sendwyre.com). For testing purposes, this should be [https://api.testwyre.com](https://api.testwyre.com) 18 | 19 | ## Wyre Account ID 20 | 21 | `--wyre-account-id` 22 | 23 | Type: String 24 | 25 | Default: None 26 | 27 | Wyre account ID 28 | 29 | ## Wyre API Key 30 | 31 | `--wyre-api-key` 32 | 33 | Type: String 34 | 35 | Default: None 36 | 37 | API Key for Wyre account 38 | 39 | ## Wyre Secret Key 40 | 41 | `--wyre-secret-key` 42 | 43 | Type: String 44 | 45 | Default: None 46 | 47 | Secret key for Wyre account 48 | -------------------------------------------------------------------------------- /deso-backend/configuration/supply-monitoring.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to running supply monitoring on your node 3 | --- 4 | 5 | # Supply Monitoring 6 | 7 | ## Run Supply Monitoring Routine 8 | 9 | `--run-supply-monitoring-routine` 10 | 11 | Type: Boolean 12 | 13 | Default: False 14 | 15 | If true, run a goroutine to monitor total supply and rich list 16 | -------------------------------------------------------------------------------- /deso-backend/configuration/web-security.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of flags related to your node's web security 3 | --- 4 | 5 | # Web Security 6 | 7 | ## Access Control Allow Origins 8 | 9 | `--access-control-allow-origins` 10 | 11 | Type: String\[] 12 | 13 | Default: \["\*"] 14 | 15 | Accepts a comma-separated lists of origin domains that will be allowed as the Access-Control-Allow-Origin HTTP header. Defaults to \* if not set which allows all origin domains. 16 | 17 | ## Secure Header Development 18 | 19 | `--secure-header-development` 20 | 21 | Type: Boolean 22 | 23 | Default: true 24 | 25 | If set, runs our secure header middleware in development mode, which disables some of the options. The default is true to make it easy to run a node locally. See [https://github.com/unrolled/secure](https://github.com/unrolled/secure) for more info. 26 | 27 | ## Secure Header Allow Hosts 28 | 29 | `--secure-header-allow-hosts` 30 | 31 | Type: String\[] 32 | 33 | Default: \[], 34 | 35 | This is the domain that our secure middleware will accept requests from. We also set the HTTP Access-Control-Allow-Origin 36 | 37 | ## 38 | -------------------------------------------------------------------------------- /deso-backend/construct-transactions/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Descriptions of all Transaction Construction Endpoints 3 | --- 4 | 5 | # 5⃣ Construct: API 6 | 7 | This section describes the endpoints used to construct transactions. All transactions must be signed — you can read about signing transactions in the [Identity Documentation](../../deso-identity/iframe-api/endpoints.md#sign). 8 | 9 | For a reference implementation of constructing, signing, and submitting a transaction, see [signAndSubmitTransaction](https://github.com/deso-protocol/frontend/blob/e006beb72867f6d48a78adb1d126c66144a4298c/src/app/backend-api.service.ts#L483) in frontend. 10 | 11 | Transactions submit data to the DeSo blockchain. Transactions on the DeSo blockchain can represent social data, such as a profile update or a post, NFT actions (minting, selling, burning, etc.), and financial/creator coin transactions. 12 | 13 | ### Structure of response 14 | 15 | Each transaction construction endpoint returns a similar response, so descriptions are included here instead of in each sample response. 16 | 17 | Only `TxnMeta` is commented in the sample responses. Every transaction construction endpoint returns the following fields: 18 | 19 | * `TotalInputNanos`: This is the total value in nanos of all the inputs specified in the transaction.\ 20 | 21 | * `ChangeAmountNanos`: This is the amount of change the transactor will receive when submitting this transaction.\ 22 | 23 | * `FeeNanos`: This is the amount the user pays in fees. `TotalInputNanos - ChangeAmountNanos - any other DeSo spent in transaction`.\ 24 | 25 | * `Transaction`: 26 | * `TxInputs`: This is an array of objects with two keys, TxID and Index. For the sake of brevity, the value of TxID is replace with ellipses in response samples provided on this page.\ 27 | 28 | * `TxOutputs`: This is an array of objects with two keys, PublicKey and AmountNanos that specifies where the outputs will go and how much.\ 29 | 30 | * `TxnMeta`: This is an object that varies based on the transaction type. It contains the metadata that describes the transaction. For example, in an Update Profile transaction, `TxnMeta` will include `NewUsername` and `NewProfilePic`.\ 31 | 32 | * `ExtraData`: This is an object that can contain any key-value pairs that add additional information about a transaction.\ 33 | 34 | * `Signature`: This will be null when received from these endpoints. Identity will provide a signature.\ 35 | 36 | * `TxnTypeJSON`: This is an integer representing the type of the transaction.\ 37 | 38 | * `PublicKey`: This is the public key of the transactor.\ 39 | 40 | * `TransactionHex`: Hex of the transaction. This is passed to identity to generate a signature. 41 | 42 | Some transactions will have the following attributes: 43 | 44 | * `TxnHashHex`: Hex of the transaction hash. This is used to check if a transaction has been successfully broadcast to the network with the Get Txn endpoint.\ 45 | 46 | * `SpendAmountNanos`: The amount of DeSo spent in a transaction not on fees. For example, in a creator coin purchase, this would be the amount of DeSo spent on buying creator coins. 47 | 48 | ## Data Types 49 | 50 | ### TransactionFee 51 | 52 | `TransactionFees` are additional transaction outputs. 53 | 54 | These additional outputs are a way for both node operators (who can specify additional fees for all transactions of a certain type on their node) and app developers (who can specify additional fees when making a request to construct a transaction). 55 | 56 | ```json5 57 | { 58 | "PublicKeyBase58Check": "BC1YLhtBTFXAsKZgoaoYNW8mWAJWdfQjycheAeYjaX46azVrnZfJ94s", // Public key of the user who will receive the additional output, 59 | "ProfileEntryResponse": , // This is only provided when TranssactionFees are retrieved through admin endpoints when managing node-leve transaction fees 60 | "AmountNanos": 10000, // The amount of DeSo in nanos this user should receive 61 | } 62 | ``` 63 | 64 | For reference, `TransactionFee` is defined in the backend repo [here](https://github.com/deso-protocol/backend/blob/709cbfbc62cf3a0e6d56c393e555fc277c93fb76/routes/admin\_fees.go#L16). 65 | 66 | ## AccessGroupMember 67 | 68 | `AccessGroupMembers` are objects used when performing Access Group Member transactions which add, remove, or update members of an access group. These objects are only using in the construction of these transaction. 69 | 70 | #### Attributes 71 | 72 | * AccessGroupMemberPublicKeyBase58Check: the public key of the user who is being added, removed, or updated 73 | * AccessGroupMemberKeyName: the access group key name belong to AccessGroupMemberPublicKeyBase58Check by which the user is being added to or removed from the group. 74 | * EncryptedKey: the private key of the access group is encrypted to the AccessGroupPublicKey of the member's access group. This must be left empty when removing a member from a group 75 | * ExtraData: arbitrary key value data used to add details about this access group member 76 | 77 | ```json5 78 | { 79 | "AccessGroupMemberPublicKeyBase58Check": "BC1YLhtBTFXAsKZgoaoYNW8mWAJWdfQjycheAeYjaX46azVrnZfJ94s", 80 | "AccessGroupMemberKeyName": "default-key", 81 | "EncryptedKey": "someencryptedhexstring", 82 | "ExtraData": { "key": "value" }, 83 | } 84 | ``` 85 | 86 | ## 87 | -------------------------------------------------------------------------------- /deso-blockchain/bare-metal.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Social features on highly-scalable bare-metal architecture 3 | --- 4 | 5 | # 1️⃣ Bare Metal 6 | 7 | In terms of architecture, a good way to understand DeSo is to imagine a Bitcoin node, only evolved to be able to handle a much wider array of transaction types than just sending/receiving money, with a vast amount of custom storage and indexing logic tailor-made to support social features at scale. 8 | 9 | ### Code Walkthrough 10 | 11 | For developers who are interested in diving into the lower-level specifics, [this developer guide](../architecture-overview/dev-setup.md) is a good starting point, and this [code walkthrough](../architecture-overview/) is the best way to fully internalize how everything fits together. It may look dense, but it is written in plain English, and shouldn't take more than an hour or two to fully internalize.\ 12 | \ 13 | For non-developers, the best way to understand DeSo's architecture and its advantages is to continue to the next section, which explains things in high-level terms. 14 | 15 | ### Storage & Indexing at Scale 16 | 17 | While traditional blockchains like Ethereum are extraordinary for creating open financial ecosystems, they are not designed to scale to handle the storage and indexing requirements of running competitive social media applications. 18 | 19 | For example, DeFi applications typically require the updating of balance entries in-place, without creating a new "state," whereas every post on a social platform creates a new state that needs to be stored and indexed in a certain way. 20 | 21 | Many issues like this make social media a special use case that we believe needs to be unbundled, and given its own dedicated architecture, in order to be properly served. 22 | 23 | DeSo's biggest advantage lies in the fact that it is _**not**_ a general-purpose blockchain. 24 | 25 | Instead, it supports a narrow set of social-oriented features that it implements on bare metal, using custom indexes that every node builds during consensus when it syncs from its peers. 26 | 27 | In contrast, general-purpose blockchains must run all functions through a virtual machine, which is typically orders of magnitude slower than running on bare metal, and even then they cannot build custom indexes for querying as they sync. 28 | 29 | As a very simple example, consider a social transaction that updates one's username. 30 | 31 | A node needs to check that the username is not currently held by another user before it allows this transaction to go through. 32 | 33 | _Simple, right_? Except that when you have just a million users, this lookup becomes prohibitively expensive on even the most advanced general-purpose blockchains today. 34 | 35 | In contrast, because DeSo can support this lookup with access to bare metal, it can cheaply and efficiently create a simple key-value index that is as fast as it would be for a centralized social application, and that can even be sharded across multiple disks or nodes as the user-base grows. 36 | 37 | ### Advantages of Bare Metal 38 | 39 | The advantages of bare metal only increase as usage increases and as more use-cases are considered. 40 | 41 | For example, checking that a parent post exists before allowing someone to reply, or even checking that an NFT is for sale before allowing someone to place a bid (noting that Ethereum's lack of support for on-chain bidding has caused significant centralization and concentration to occur around NFT marketplaces). 42 | 43 | As another simple example, consider displaying a simple list of a user's most recent posts. 44 | 45 | Because general-purpose blockchains do not generally support ordered lists, this is not even possible without building an off-chain index. 46 | 47 | In contrast, DeSo natively supports indexes such as posts ordered by timestamp, profiles ordered by the value of their coin, NFT bids organized by which NFT they're associated with, and much more, and all of these indexes can scale as the user-base grows. 48 | 49 | This significantly reduces the complexity of running a node, which in turn can significantly increase the decentralization of the ecosystem, and the number of apps that can be built on top of DeSo. 50 | 51 | As one final example, even the mempool of DeSo nodes was written from scratch to support queries for social data, without requiring users to have to wait for blocks to mine. 52 | 53 | This seemingly minor optimization is critical in order for DeSo apps to feel "**instant**," and we believe DeSo would not be competitive with traditional centralized social apps without it. 54 | -------------------------------------------------------------------------------- /deso-blockchain/content-moderation.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Creating a new open-economy of scale for moderation via global participation 3 | --- 4 | 5 | # 3⃣ Content Moderation 6 | 7 | ### Centralized Moderation[​](https://deso-docs.vercel.app/docs/blockchain/content-moderation#centralized-moderation) 8 | 9 | Moderation of content is an absolutely critical topic when it comes to building a decentralized social network, and it is probably the topic we have spent the most time on besides engineering design. 10 | 11 | First, because all of the data on DeSo is open, an ecosystem around moderation can develop that is more robust than what can be achieved with a traditional company. 12 | 13 | For example, because the data is open, the best machine learning researchers at the best academic institutions in the world can build APIs that label all of the content on the blockchain in a way they can't today, which can then be consumed by all node operators that want to remain compliant. 14 | 15 | This would create an economy of scale around moderation that we believe can be more robust than what's possible within the confines of a single corporate entity. 16 | 17 | All of the data being open also allows the Federal government to better analyze the spread of misinformation, and be more involved in preventing it, than they can be when all of the content people are seeing is locked up in a corporate walled garden. 18 | 19 | Moreover, at a high level, we start by considering a spectrum of how decentralized the internet can be. 20 | 21 | Right now we are on the very “centralized” side of the spectrum, where small moderation teams at a few companies control the vast majority of public discourse. 22 | 23 | We think this is too far on one end of the spectrum, but we also think that the opposite end, where there is total anarchy with regard to content, is even worse. 24 | 25 | ### Decentralized Moderation[​](https://deso-docs.vercel.app/docs/blockchain/content-moderation#decentralized-moderation) 26 | 27 | DeSo sits in the middle of the above spectrum. It leverages the same moderation scheme that governed the pre-Facebook internet, which we think deters harmful content without stifling innovation and competition. 28 | 29 | Any website that displays harmful content is subject to both federal and civil litigation, whether its content comes from a blockchain or from a USB drive. 30 | 31 | This is what prevents harmful content from seeing the light of day on the internet today, even though there are many people who could theoretically serve it. 32 | 33 | It's also largely how the pre-Facebook internet was kept in check, and it's the same mechanism that prevents nodes on the DeSo network from serving harmful content. 34 | 35 | For example, one of the main applications built on DeSo, [Diamond](https://diamondapp.com/) is exposing a subset of all the posts on the blockchain. 36 | 37 | Diamond filters the blockchain content to prevent showing content that is harmful or illegal. Every node that runs on top of the DeSo blockchain, including apps like Diamond, Pearl, or Desofy, can expose whatever subset of the posts that they want. 38 | 39 | This being said, showing illegal or harmful content would not only subject them to copious amounts of litigation, but it would also likely make it such that nobody would want to use them. 40 | 41 | That content will still technically be on the blockchain but it won't be practically accessible. 42 | -------------------------------------------------------------------------------- /deso-blockchain/on-chain-data.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Defending against the risk of censorship via maximum on-chain transparency 3 | --- 4 | 5 | # 5⃣ On-Chain Data 6 | 7 | ### Centralization Risks 8 | 9 | Some would argue that social applications can get by without storing everything on-chain. 10 | 11 | For example, one could imagine an Ethereum-based app that registers a user's public key on the blockchain initially, but then stores all posts on a centralized server. 12 | 13 | The problem with such an app is that whoever is running the centralized server has a significant incentive to, eventually, become a gatekeeper just like the social juggernauts we have today. 14 | 15 | This is especially true if the app is structured as a for-profit company since its fiduciary duty to its shareholders will inevitably accelerate its transformation into a closed-walled garden of content. 16 | 17 | Moreover, this risk means that developers building on top of this ecosystem will be deterred from ever investing in it, and even those that do will have trouble raising money. 18 | 19 | Thus, with DeSo, we believe it is tantamount to store every piece of data we possibly can directly on the blockchain and to adjust the architecture of the chain by whatever means necessary to maintain this. 20 | 21 | In the long-term, we believe this value will prove critical not only in ensuring that DeSo's growth surpasses that of other networks but also in ensuring that DeSo's end-state does not mirror the closed, highly-centralized social ecosystem we have today. 22 | 23 | ### List of On-Chain Data 24 | 25 | To be concrete, below is a complete list of everything that DeSo is currently equipped to store on-chain, and the notable exceptions: 26 | 27 | * All identity & profiles 28 | * All posts and comments 29 | * All private messages between users, which are end-to-end encrypted 30 | * All likes and follows 31 | * All social token activity 32 | * All social tipping activity 33 | * All NFT activity, including NFT bids 34 | * All $DESO transfer activity 35 | * Links to all rich media, such as video and images 36 | * All profile verifications via a new verification paradigm called "[associations](https://diamondapp.com/u/deso/blog/associations-explained-building-network-effects-on-chain)" 37 | 38 | **Exceptions:** 39 | 40 | * Raw images and videos are stored in centralized but publicly accessible and easily replicable repositories, making the on-chain links sufficient to guarantee access into perpetuity. 41 | * Emails and phone numbers are stored by individual node operators in order to protect users' privacy. We do not think this presents a significant centralization risk; however, if this proves incorrect then this information can be encrypted and stored with the profile in a privacy-preserving fashion relatively easily. 42 | * Decisions about what profiles to show or hide, or how to curate content, lie with node operators. However, we think this is a positive force for decentralization, as we will discuss moderation here [content-moderation.md](content-moderation.md "mention") 43 | 44 | As more features are added to DeSo, we will continue to ensure that all data that could pose a centralization risk lives on-chain. 45 | 46 | Moreover, we believe immensely that this value will come to separate DeSo from other more centralized efforts in terms of the value that can be created. 47 | -------------------------------------------------------------------------------- /deso-blockchain/privacy-and-security.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Not your keys, not your content 3 | --- 4 | 5 | # 7⃣ User Security 6 | 7 | ## **What is a seed phrase?** 8 | 9 | Your seed phrase is the password that controls your entire account. Your seed phrase can never be changed and sharing your seed phrase with anyone could result in total loss of funds. 10 | 11 | ## **Do DeSo applications have access to my seed phrase?** 12 | 13 | No, if you're using DeSo Identity Service, applications do not have access to your seed phrase. 14 | 15 | Your seed is stored in your browser in a highly-secured `iframe` that is completely isolated from the rest of the app. Transactions are signed in your browser by this `iframe` and **your seed phrase never leaves your browser.** 16 | 17 | ## **How do I keep my account safe?** 18 | 19 | For maximum security, the developer community recommends you use mobile browsers or the DeSo desktop app to access DeSo applications. 20 | 21 | Both mobile browsers and the DeSo desktop app are secured, sandboxed environments that cannot be easily compromised by third-party attackers. 22 | 23 | While DeSo applications are generally safe to access in a regular Desktop browser like Chrome, Safari, Firefox, etc, there is some risk that malicious browser extensions could steal your seed phrase if you give them access to DeSo applications. **This should be rare, but if you own a large amount of DeSo it is recommended that you either disable extensions manually or use Incognito mode, which disables extensions automatically.** 24 | 25 | Furthermore, if you own a large amount of DeSo it may be prudent to create two separate accounts: one account that you use to post and follow, and a separate account to hold your coins. 26 | 27 | ## **What do I do i**f I lose my seed phrase? 28 | 29 | Because your seed phrase is stored exclusively in your browser, it cannot be recovered by any third party. **If you lose your seed phrase, currently the only option is to create a new account, save the new seed phrase, and send all of your holdings to this new account.**\ 30 | \ 31 | You may need to liquidate your creator coin holdings into DeSo first. You can transfer a username by first changing the username on the old account and then quickly claiming the username with the new account. 32 | 33 | We apologize for the inconvenience here. We know this process is not ideal, but we're working on alternative solutions, and hope to have an easier recovery path for users in the future. 34 | 35 | ## How does DeSo Identity work? 36 | 37 | DeSo Identity, located at [identity.deso.org](https://identity.deso.org), safely stores your sensitive account information in your browser's local storage. To protect private key material the identity service has minimal dependencies, a strict content security policy, and is audited by multiple security firms.\ 38 | \ 39 | **For now, the developer community does not recommend entering your seed phrase anywhere other than identity.deso.org.**\ 40 | \ 41 | Always check the URL bar to verify you are using `identity.deso.org.` 42 | 43 | The DeSo Identity Service aims to make it easy for users to use a wide array of community projects safely and securely.\ 44 | \ 45 | Apps and nodes can integrate with DeSo Identity to onboard users without requiring them to enter private key material. Users can easily grant different levels of access on a per-account basis. 46 | -------------------------------------------------------------------------------- /deso-features/social-tipping.md: -------------------------------------------------------------------------------- 1 | # 5⃣ Social Tipping 2 | 3 | ## What is Social Tipping? 4 | 5 | Because DeSo is money-native, it can tie tipping with content in ways that no other social network can.\ 6 | \ 7 | On DeSo, the core mechanic introduced is called "**diamonds**," and it functions as a like, only it allows users to give variable amounts of money to content. 8 | 9 |
10 | 11 | In the screenshot above, a single diamond is a fraction of a penny while a six-diamond tip is \~$53. 12 | 13 | All of this is instant, and the receiver of the tip immediately gets $DESO in their wallet for their content. Many users already earn thousands of dollars a week off of this feature alone, and as DeSo scales, the economics will only get better. 14 | 15 | Just to do some math, imagine a post with 1 million likes gets 100,000 diamonds, worth on average ten cents each. 16 | 17 | That's $100,000 in pure cash from _just_ the diamonds! 18 | 19 | Moreover, users typically get a higher ratio of likes to diamonds, but we wanted to be conservative in our calculations. 20 | -------------------------------------------------------------------------------- /deso-frontend/exchange-listing-api-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Use this React example to start building your first app on DeSo 3 | --- 4 | 5 | # 2⃣ Frontend: React Example 6 | 7 | This is a simple [Create React App](https://create-react-app.dev/docs/getting-started) project, but these examples can be easily ported to your preferred framework or build tool. 8 | 9 | Github: [https://github.com/deso-protocol/deso-examples-react](https://github.com/deso-protocol/deso-examples-react) 10 | 11 | ### How to run these examples locally 12 | 13 | Run the following in your terminal 14 | 15 | ``` 16 | git clone https://github.com/deso-protocol/deso-examples-react.git 17 | cd deso-examples-react 18 | npm i 19 | npm run start 20 | ``` 21 | 22 | ### How to use this repository 23 | 24 | If you want to port these examples to your own app, set up a project using the docs for your preferred tool (Create React App, Vite, Nextjs, Remix, Angular, Vue, etc). 25 | 26 | If you're not sure, Create React App is a reasonable choice for getting a development environment up and running for quick prototyping/experimenting. 27 | 28 | Next, install the [DeSo Protocol SDK](https://www.npmjs.com/package/deso-protocol) using your preferred package manager: 29 | 30 | ``` 31 | # npm 32 | npm i deso-protocol 33 | 34 | # yarn 35 | yarn add deso-protocol 36 | ``` 37 | 38 | Finally, use the examples found in this repo to help you build social features for your application. 39 | 40 | There are lots of comments throughout the code, but if anything is unclear, please open an issue! 41 | 42 | ### Examples 43 | 44 | * [Configuration](https://github.com/deso-protocol/deso-examples-react/blob/main/src/routes/root.jsx#L7) 45 | * [Login](https://github.com/deso-protocol/deso-examples-react/blob/main/src/components/nav.jsx#L27) 46 | * [Logout](https://github.com/deso-protocol/deso-examples-react/blob/main/src/components/nav.jsx#L31) 47 | * State Sync 48 | 1. [Create a react context](https://github.com/deso-protocol/deso-examples-react/blob/main/src/contexts.js#L7) 49 | 2. [Set up useState hook](https://github.com/deso-protocol/deso-examples-react/blob/main/src/routes/root.jsx#L18) 50 | 3. [Set up useEffect hook](https://github.com/deso-protocol/deso-examples-react/blob/main/src/routes/root.jsx#L24) 51 | 4. [Subscribe to identity](https://github.com/deso-protocol/deso-examples-react/blob/main/src/routes/root.jsx#L40) 52 | 5. [Instantiate a context provider](https://github.com/deso-protocol/deso-examples-react/blob/main/src/routes/root.jsx#L117) 53 | 6. [Use state from identity anywhere](https://github.com/deso-protocol/deso-examples-react/blob/main/src/components/nav.jsx#L8) 54 | 7. [React to changes in your code](https://github.com/deso-protocol/deso-examples-react/blob/main/src/components/nav.jsx#L16) 55 | * [Check permissions](https://github.com/deso-protocol/deso-examples-react/blob/main/src/routes/sign-and-submit-tx.jsx#L8) 56 | * [Request permissions](https://github.com/deso-protocol/deso-examples-react/blob/main/src/routes/sign-and-submit-tx.jsx#L50) 57 | * [Create, sign, submit a transaction](https://github.com/deso-protocol/deso-examples-react/blob/main/src/routes/sign-and-submit-tx.jsx#L61) 58 | 59 | -------------------------------------------------------------------------------- /deso-frontend/exchange-listing-api.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Get started building on DeSo with our Javascript SDK 3 | --- 4 | 5 | # 1⃣ Frontend: Get Started 6 | 7 | ### Setup 8 | 9 | If you’re already familiar with a particular framework, feel free to set up a project using the documentation for your preferred tool (Create React App, Vite, Nextjs, Remix, Angular, Vue, etc). 10 | 11 | If you're not sure, [our examples](https://github.com/deso-protocol/deso-examples-react) will be using [Create React App](https://create-react-app.dev/), which is a reasonable choice for getting a development environment up and running for quick prototyping.\ 12 | \ 13 | You can find the system requirements and installation steps on the Create React App [getting started page](https://create-react-app.dev/docs/getting-started). 14 | 15 | Note that CRA’s default scaffolding uses vanilla javascript.\ 16 | \ 17 | If you’re comfortable with typescript and prefer to use it, [see this section](https://create-react-app.dev/docs/getting-started#creating-a-typescript-app) to get started. Otherwise, using vanilla javascript is a reasonable choice. 18 | 19 | Once you have your app up and running with the default scaffolding, we’ll install the DeSo identity package and look at some examples. 20 | 21 | ### Installation 22 | 23 | [The DeSo Protocol SDK](https://www.npmjs.com/package/deso-protocol) is used for core functionality when building an application for the DeSo blockchain: logging in, logging out, signing and submitting transactions, and more. \ 24 | \ 25 | NPM: [https://www.npmjs.com/package/deso-protocol](https://www.npmjs.com/package/deso-protocol)\ 26 | Github: [https://github.com/deso-protocol/deso-workspace/tree/main/libs/deso-protocol](https://github.com/deso-protocol/deso-workspace/tree/main/libs/deso-protocol) 27 | 28 | \ 29 | In the root of your application run: 30 | 31 | ``` 32 | npm i deso-protocol 33 | ``` 34 | 35 | And now you should be ready to start building! 36 | 37 | ## Configuration 38 | 39 | Change the identity library’s behavior based on the needs of your app. 40 | 41 | ### Transaction spending limit options 42 | 43 | Setting transaction spending limit options will determine what permissions your users will see when logging into your app, and the amount in DeSo your app can spend on their behalf. 44 | 45 | On DeSo, every user gets a main or _**owner**_ keypair generated for them when they create an account for the first time.\ 46 | \ 47 | The owner key is able to sign _**any**_ transaction on behalf of the user, including spending _**all**_ of their money, and transferring **all** of their NFTs or tokens! 48 | 49 | It wouldn’t be a good idea to give every app the user interacts with direct access to this key. But we also don’t want to make users have to manually approve _every single transaction_ that an app wants them to do.\ 50 | \ 51 | Can you imagine using Twitter if every like and comment required an annoying approval popup? 52 | 53 | The solution is to allow apps to generate **subkeys** or _**derived**_ keys that have a limited set of permissions, approved by the _**owner**_ key.\ 54 | \ 55 | This looks as follows: 56 | 57 | * User creates an account for the first time, generating an _**owner**_ public/private keypair that is stored in DeSo Identity (stored locally in the browser, but on a distinct domain that is not accessible to apps).\ 58 | 59 | * User gets some starter $DESO coins to cover gas, either by entering their phone number or buying some.\ 60 | 61 | * App generates a _**derived**_ key, which can just be any random keypair, and a transaction granting this derived key certain permissions, e.g. the ability to post 3 times on the user’s behalf.\ 62 | 63 | * Once the derived key approval transaction is generated, the DeSo Identity wallet can prompt the user to _**approve**_ it, thus signing the transaction with the user’s _**owner**_ public key.\ 64 | 65 | * Once an approve txn is signed by the user’s owner public key, it can be _**broadcast**_ to the DeSo blockchain, which then gives the _**derived**_ key the desired permissions.\ 66 | 67 | * The app can then happily sign transactions on the user’s behalf, without the user having to worry about the app stealing their funds (also known as getting **rug-pulled** or **rugged**). 68 | 69 | In this example, we will ask users for permission to create an unlimited number of posts and make an unlimited number of transfers until they meet the global limit of 1 $DESO. 70 | 71 | ``` 72 | import { configure } from 'deso-protocol'; 73 | 74 | configure({ 75 | spendingLimitOptions: { 76 | // NOTE: this value is in Deso nanos, so 1 Deso * 1e9 77 | GlobalDESOLimit: 1 * 1e9 // == 1 Deso 78 | // Map of transaction type to the number of times this derived key is 79 | // allowed to perform this operation on behalf of the owner public key 80 | TransactionCountLimitMap: { 81 | BASIC_TRANSFER: 'UNLIMITED', // Sending/receiving DESO is a "basic transfer" 82 | SUBMIT_POST: 'UNLIMITED', 83 | }, 84 | } 85 | }); 86 | ``` 87 | 88 | **Important:** You’ll want to make sure you call configure only once prior to calling any other identity methods. 89 | 90 | Note that even though we approve an unlimited number of **basic transfer** transactions in the above configure() call, we cannot take more than 1 $DESO from the user’s wallet before we have to pop up an approval again. 91 | 92 | This is a good thing for the user! 93 | 94 | While you’ll typically want to ask for specific permissions in a production app, it is possible to ask for unlimited access for prototyping or quickly testing things.\ 95 | \ 96 | This example requests approval for unlimited access: 97 | 98 | ``` 99 | import { configure } from 'deso-protocol'; 100 | 101 | configure({ 102 | spendingLimitOptions: { 103 | IsUnlimited: true 104 | } 105 | }); 106 | ``` 107 | 108 | ### App Name 109 | 110 | `appName` is used to identify the app that authorizes a derived key.\ 111 | \ 112 | This can be used to group and identify derived keys that have been issued by a given app. If you don’t set the appName, the domain name your app is running on will be used by default. 113 | 114 | ``` 115 | import { configure } from 'deso-protocol'; 116 | 117 | configure({ 118 | appName: 'My Cool App', 119 | spendingLimitOptions: { 120 | IsUnlimited: true 121 | } 122 | }); 123 | ``` 124 | 125 | Soon, users will be able to easily see all the apps they’ve used, and what permissions they’ve granted them (this is why setting a good app name is helpful!).\ 126 | \ 127 | Users will also be able to disable permissions from one unified dashboard. 128 | 129 | ### Next steps 130 | 131 | Next, we’ll look at some basic [examples of common scenarios.](https://github.com/deso-protocol/deso-examples-react) 132 | -------------------------------------------------------------------------------- /deso-governance.md: -------------------------------------------------------------------------------- 1 | # 🏛️ DeSo Governance 2 | 3 | Changes to the DeSo blockchain happen according to upgrades to its Revolution PoS consensus mechanism, which is described in detail [here](https://revolution.deso.com/) and [here](https://docs.deso.org/deso-validators/run-a-validator), with all current validators and their staking percentages listed on [the DeSo block explorer here](https://explorer.deso.com/validators). 4 | 5 | In simple terms, anyone can submit an upgrade to [DeSo’s fully open-source code](http://github.com/deso-protocol/core), but an upgrade to the DeSo blockchain goes through only if 2/3rds of the validators (weighted by stake) upgrade their software before a particular block height. This is similar to how other Proof of Stake blockchains work, such as Ethereum, and it ensures that changes to the blockchain get heavy oversight and buy-in from the major economic players in the ecosystem before they go through. 6 | 7 | For the avoidance of doubt, it is impossible to upgrade the DeSo blockchain without a 2/3rds stake-weighted majority accepting the changes, noting that the DeSo blockchain is [fully 100% open-source](https://github.com/deso-protocol/core), and that no individual owns more than 20% of the DESO in existence. Learn about the key repos and how the code works [here](https://docs.deso.org/~/changes/fDLjGJdJathPNuf23Eol/deso-repos/architecture-overview) (outdated but good) and [here](https://docs.deso.org/~/changes/fDLjGJdJathPNuf23Eol/openfund/algorithmic-trading/debugging-tips-and-code-walkthrough). 8 | -------------------------------------------------------------------------------- /deso-identity/identity/README.md: -------------------------------------------------------------------------------- 1 | # 1⃣ Identity: Overview 2 | 3 | ## Starter 4 | 5 | Welcome to the **DeSo Identity Service** documentation!\ 6 | \ 7 | If you're looking to build a Web3 app on the DeSo blockchain, you will most likely want to use the DeSo Identity Service.\ 8 | \ 9 | This guide explains how Identity works and it should give you a good understanding of how to integrate it into your app. This guide is intended for a broad range of readers and assumes only a basic understanding of blockchain technology and the TypeScript language.\ 10 | \ 11 | When learning programming concepts it's always a good idea to simultaneously look at a code implementation.\ 12 | \ 13 | That's why in this guide, we will be tracing through the DeSo Protocol reference implementation located in the [frontend repository,](https://github.com/deso-protocol/frontend) under [`/src/app/identity.service.ts`](https://github.com/deso-protocol/frontend/blob/main/src/app/identity.service.ts).\ 14 | \ 15 | If you go through all of the Identity tutorials, you should be able to write a similar code to support your application. \ 16 | \ 17 | So let's get started! 18 | 19 | ## Background 20 | 21 | Blockchains involve a lot of public key cryptography. 22 | 23 | This is because every interaction on a blockchain occurs on a peer-to-peer basis, without relying on some central authority such as in traditional Web2 applications. 24 | 25 | As a result, blockchains are based on communication models that eliminate trust from the equation and substitute it for the mathematical confidence of public key cryptography. 26 | 27 | In such systems, each user has a pair of public and private keys. 28 | 29 | Drawing an analogy from traditional infrastructures, public keys are like usernames, and private keys work similarly to passwords. Typically, integrating these cryptographic primitives into a web or mobile application would have required significant software overhead and technical knowledge. 30 | 31 | However, we believe that building Web3 applications should be as simple as possible, and no more complicated than building apps on the centralized web. 32 | 33 | And so, we created the **DeSo Identity Service**. 34 | 35 | The DeSo Identity service provides a convenient and secure way to manage user credentials (key pairs) in web and mobile applications built on the DeSo blockchain. 36 | 37 | In fact, you've probably already encountered the Identity app when using applications powered by the DeSo blockchain. 38 | 39 | Identity acts as a secured container that can be queried through Identity API to handle all the functionality related to users' key material. 40 | 41 | The Identity API is located under [`https://identity.deso.org`](https://identity.deso.org). 42 | 43 | Currently, it integrates most smoothly with web applications, which can be accomplished using our [window-api](../window-api/ "mention") and [iframe-api](../iframe-api/ "mention"). 44 | 45 | Integrations with iOS and Android can be done through derived keys or webview, as explained in our [mobile-integration.md](mobile-integration.md "mention") guide. 46 | 47 | For simpler communication, the DeSo Identity Service will henceforth be referred to as Identity in this documentation. 48 | 49 | Now check out the [concepts.md](concepts.md "mention") guide to get started integrating with the DeSo Identity Service. 50 | -------------------------------------------------------------------------------- /deso-identity/iframe-api/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Documentation on the iframe Context API 3 | --- 4 | 5 | # 2⃣ Identity: iFrame API 6 | 7 | ## Introduction 8 | 9 | This guide describes the iframe API, which is an essential component of integrating with the DeSo Identity Service for web application developers. 10 | 11 | If you haven't yet read through the [identity](../identity/ "mention") and [concepts.md](../identity/concepts.md "mention") guides, it would be helpful to do so prior to reading this documentation. 12 | 13 | This guide also depends on [window-api](../window-api/ "mention"), so we recommend reading about it first. 14 | 15 | The iframe API guide consists of two subpages, which should give you a comprehensive view of the API: 16 | 17 | * [basics.md](basics.md "mention") guide outlines the fundamentals of integrating with the iframe API 18 | * [endpoints.md](endpoints.md "mention") is an exhaustive list of all API endpoints. 19 | 20 | If you're creating a mobile app, check out our [mobile-integration.md](../identity/mobile-integration.md "mention") guide next. 21 | -------------------------------------------------------------------------------- /deso-identity/window-api/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Documentation on the Window Context API 3 | --- 4 | 5 | # 3⃣ Identity: Window API 6 | 7 | ## Introduction 8 | 9 | This guide describes the Window API, which is an essential component of integrating with the DeSo Identity Service. 10 | 11 | If you haven't yet read through the [identity](../identity/ "mention") and [concepts.md](../identity/concepts.md "mention") guides, it would be helpful to do so prior to reading this documentation. 12 | 13 | The Window API guide consists of two subpages, which should give you a comprehensive view of the API: 14 | 15 | * [basics.md](basics.md "mention") guide outlines the fundamentals of integrating with the Window API 16 | * [endpoints.md](endpoints.md "mention") is an exhaustive list of all API endpoints. 17 | 18 | Upon finishing reading about the Window API, we recommend taking a look at the [iframe-api](../iframe-api/ "mention"), especially if you're developing a web application. 19 | 20 | And if you're creating a mobile app, check out our [mobile-integration.md](../identity/mobile-integration.md "mention") guide next. 21 | -------------------------------------------------------------------------------- /deso-nodes/node-staying-up-to-date.md: -------------------------------------------------------------------------------- 1 | # 3⃣ Node: Staying Up-To-Date 2 | 3 | This is a step-by-step guide on how to stay up to date with hardforks of the core repository, as well as instructions for core team members on how to execute updates that could cause a hard fork on the network.\ 4 | \ 5 | This doc should help node operators and the core team release new code in an organized way, particularly so that the developer community has sufficient time and resources to upgrade their nodes. 6 | 7 | ## Instructions for Node Operators 8 | 9 | 1. Subscribe to release notifications on GitHub 10 | * Which repos? 11 | * [https://github.com/deso-protocol/core](https://github.com/deso-protocol/core) (important) 12 | * [https://github.com/deso-protocol/backend](https://github.com/deso-protocol/backend) (important) 13 | * [https://github.com/deso-protocol/rosetta-deso](https://github.com/deso-protocol/rosetta-deso) (important for exchanges like Coinbase) 14 | * [https://github.com/deso-protocol/identity](https://github.com/deso-protocol/identity) 15 | * [https://github.com/deso-protocol/frontend](https://github.com/deso-protocol/frontend) 16 | * How to subscribe 17 | 1. Click “Watch” at the top 18 | 2. Select “Custom” 19 | 3. Check “Releases”\ 20 | 21 | 2. Whenever a major version update occurs, e.g. moving from 2.9.9 to 3.0.0, be sure to read the release notes and reboot your node within the next week to avoid issues 22 | * Note that occasionally a resync will be required, which could cause \~20 minutes of downtime unless done in parallel with a second running node. Be sure to read the release instructions to avoid any interruptions.\ 23 | 24 | 3. Follow [@deso](https://diamondapp.com/u/deso) and [@nader](https://diamondapp.com/u/nader) on [node.deso.org](https://node.deso.org/) or [DiamondApp](https://diamondapp.com/) for on-chain announcements and discussion\ 25 | 26 | 4. Follow [@desoprotocol](https://twitter.com/desoprotocol) and [@nadertheory](https://twitter.com/nadertheory) on Twitter 27 | 28 | ## Instructions for Core Team 29 | 30 | ### Code preparation 31 | 32 | 1. Gate all the forking changes by a ForkHeight which initially should be set to `math.MaxUint32` for both mainnet and testnet, and 0 for regtest.\ 33 | 34 | 2. Verify that the code passes all basic tests: 35 | 1. core unit tests 36 | 2. core integration tests 37 | 3. node syncs with hypersync + txindex on testnet and mainnet 38 | 4. node syncs with blocksync + txindex on testnet and mainnet 39 | 5. rosetta can sync mainnet 40 | 6. repeat steps c. and d. for postgres 41 | 7. test that all of the changes work in the reference frontend 42 | 8. make sure to run more comprehensive tests when deploying a complex change\ 43 | 44 | 3. Assuming you’re ready with all the content for the steps in the next sections, you should announce everything at 12:00 PM PT and set the testnet fork height to 1 day from the announcement, and the mainnet fork height to **a minimum of** 7 days from the announcement. 45 | * We will strive to give as much time for node operators to upgrade as possible, erring on the side of two weeks.\ 46 | \ 47 | However, in the interest of moving quickly, it will sometimes be necessary to make updates with less warning, though generally with no less than one week of warning. 48 | 49 | ### Release preparation 50 | 51 | 1. Come up with a description of what happens in the fork. Make it a couple sentences, or a couple paragraphs depending on the scope of the change. See what fits based on next steps.\ 52 | 53 | 2. Draft a Fork Preparation Checklist document which is a step-by-step checklist/walkthrough of what node operators need to do in order to upgrade their nodes (inspired by [prism’s merge preparation checklist](https://docs.prylabs.network/docs/prepare-for-merge))\ 54 | 55 | 3. (Optionally) Write a before and after table which describes what happens in the fork. The left column should describe different aspects of the “before” tech and the right shows how they updated / changed “after” the fork. (also [prism’s merge preparation docs](https://docs.prylabs.network/docs/prepare-for-merge#the-merge-before-and-now))\ 56 | 57 | 4. Put all of the above in a new draft release on github, similar to how [consensys does it with teku](https://github.com/ConsenSys/teku/releases), or how [ethereum does it](https://github.com/ethereum/go-ethereum/releases)\ 58 | 59 | 5. Assuming the release number is XX.YY.ZZ (major.minor.patch):\ 60 | 61 | * You should increment the major XX 62 | * \-> if the node operators will be required to upgrade their software within a fixed amount of time, otherwise risking ending up on a stale fork.\ 63 | 64 | * You should increment the minor YY 65 | * \-> if the node operators can do nothing and still properly participate in the network. The code augments the node in a backwards-compatible fashion.\ 66 | 67 | * You should increment the patch ZZ 68 | * \-> If the update fixes a bug in a backwards-compatible fashion.\ 69 | 70 | 6. Cut the new release 71 | 72 | ### Announcement 73 | 74 | 1. Create twitter announcement for the fork 75 | 2. Create diamond announcement for the fork 76 | 3. Create discord announcement for the fork 77 | -------------------------------------------------------------------------------- /deso-nodes/setup.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Description of steps required to download and start your node 3 | --- 4 | 5 | # 2️⃣ Node: Setup 6 | 7 | Setting up a Deso Node is a simple process, but first verify that you have both [Broken link](broken-reference "mention") and [Broken link](broken-reference "mention") installed. 8 | 9 | ### Cloning The Repository 10 | 11 | Create a folder where you want your node to be held then open your terminal of choice in that location. 12 | 13 | Execute the command `git clone` [`https://github.com/deso-protocol/run.git`](https://github.com/deso-protocol/run.git) in your terminal. 14 | 15 | ![](<../.gitbook/assets/git clone updated.PNG>) 16 | 17 | ### Download The Containers 18 | 19 | Once the installation is complete navigate to the run folder with `cd run` and execute the command `./run.sh` 20 | 21 | ![](../.gitbook/assets/run-sh-1.PNG) 22 | 23 | A small terminal will appear and automatically download the containers for the node's frontend, backend, and nginx. This may take a few minutes. 24 | 25 | Note in order to turn your node on or off open the Docker GUI navigate to the containers/apps tab, hover over the run tab, and hit the start/stop button to turn your node on or off. 26 | 27 | ![](../.gitbook/assets/docker-toggle-container.PNG) 28 | 29 | Congratulations, your Deso node is now running locally! Navigate to [http://deso.run](http://deso.run/) or `locahost:8080` in your browser to see your local instance. 30 | -------------------------------------------------------------------------------- /deso-tokenomics/README.md: -------------------------------------------------------------------------------- 1 | # 🪙 DeSo Tokenomics 2 | 3 | DESO is the native token of the DeSo Blockchain. It is burned as a fee on every single transaction that is processed by the network, making it inherently scarce over time. It is also used to stake to nodes to secure the network as part of [DeSo's Revolution Proof of Stake Consensus](https://revolution.deso.com). The staking APY is subject to change, update-able by PoS hard fork (see [DeSo Governance](../deso-governance.md)), and [is always listed on the block explorer's validator page](https://explorer.deso.com/validators). 4 | 5 | Simply put, the more transactions that run through the DeSo network, the more fees are burned, and the more scarce the currency. In the short-term, the APY paid to support staking is inflationary, but staking rewards will be lowered over time, and in the short-term they encourage users to stake their DESO, which also has a deflationary effect. 6 | 7 | In addition, apps launched by the Core Team, such as [Focus](https://focus.xyz) ([docs](https://docs.google.com/document/u/1/d/14Um8ErmoE8IhgZrACSI2FeTo2yji2Q1Hxvw7KNoozM8/edit)) and [Openfund](https://openfund.com) ([docs](broken-reference)) serve as [DESO Sinks](deso-sinks.md). 8 | 9 | **Read the next section to learn about DeSo's founding story, initial supply distribution, and more.** 10 | -------------------------------------------------------------------------------- /deso-tokenomics/current-deso-supply.md: -------------------------------------------------------------------------------- 1 | # Current DESO Supply 2 | 3 | The current supply of DESO is best viewed on the reference DeSo node [here](https://node.deso.org/supply-stats). There are other sources, but this endpoint hits a fully-synced DeSo node, which runs through all of the actual token balances on-chain to compute a value that is up-to-date down to the second. 4 | 5 | Due to burn from transactions and APY paid to staking, the value changes over time, and Coinmarketcap and Coingecko are not dynamically-updated at the time of this writing, so it's best to check the nodes themselves as the source of truth. 6 | -------------------------------------------------------------------------------- /deso-tokenomics/designed-for-the-end-game.md: -------------------------------------------------------------------------------- 1 | # Designed for the End-Game 2 | 3 | When the DeSo Blockchain was first being built, it was designed from the ground up for what the team refers to as "the end-game." Every incentive has been intensely scrutinized, and designed to be robust under a state in which the blockchain has become mature, dominant, and structurally important. It is difficult to see the impacts of these design decisions now because we are in the early days of crypto, but we believe that the difference between strong tokenomic incentives and weak ones will have major impacts on society depending on which blockchain ends up winning, and we have taken this extremely seriously from the very beginning. 4 | -------------------------------------------------------------------------------- /deso-tokenomics/deso-sinks.md: -------------------------------------------------------------------------------- 1 | # DESO Sinks 2 | 3 | In addition to the natural burn from transactions, the Core Team continues to develop key applications on the DeSo Blockchain that are gaining traction, and that serve as "DESO Sinks." We refer to these projects as such because they each have their own toke that can only be purchased with DESO. The end result is that the success of these projects could result in vast amounts of DESO being purchased in order to gain exposure to them, independent of DESO's fee-burning potential. The largest apps that act as DESO Sinks today are [Openfund](https://openfund.com) ([docs](broken-reference)) and [Focus](https://focus.xyz) ([docs](https://docs.google.com/document/d/14Um8ErmoE8IhgZrACSI2FeTo2yji2Q1Hxvw7KNoozM8/edit?tab=t.0)). You can see their markets on the DeSo DEX via Openfund [here](https://openfund.com/trade/openfund) and [here](https://openfund.com/trade/focus). 4 | 5 | In addition to Openfund and Focus requiring DESO in order to purchase their tokens, it is worth mentioning that Focus in particular pioneers a new kind of token launchpad with a sophisticated "Automated Market-Maker" concept to power it, now years in the making. This is significant because the tokens launched on Focus require FOCUS tokens to be used and locked up in order to purchase them by default, and FOCUS can only be acquired for DESO. 6 | -------------------------------------------------------------------------------- /deso-tokenomics/initial-deso-distribution.md: -------------------------------------------------------------------------------- 1 | # Initial DESO Distribution 2 | 3 | The DESO supply was initially \~10.8M (prior to any staking rewards being paid out). This DESO was initially distributed by three mechanisms (initially described in detail in [this](https://drive.google.com/file/d/1YYNSURLiDhZSw3quYtrO5OtGqxSN-NdJ/view?usp=sharing) extremely old document, noting that DESO was initially called CLOUT). Notably, no DESO was ever locked, and there is nobody waiting for liquidity so they can dump their coins. 4 | 5 | We describe the initial distribution of DESO below in simple terms: 6 | 7 | * Bonding Curve Allocation (\~77%). In \~2021, approximately 77% of the initial DESO was sold through an innovative bonding curve mechanism that was fully open to the public. This mechanism was relatively simple: The price started at $0.50 per DESO (priced in Bitcoin), and doubled for every million DESO sold. The price ultimately reached approximately $180, raising \~5k BTC before the bonding curve was disabled by a hard-fork (shortly before DESO's first CEX listing). 8 | * Every purchase made against the bonding curve has been aggregated and listed in [this sheet](https://docs.google.com/spreadsheets/d/1D-p6AuwWkQGywfnyXmqirPCfQGZNLn70WHARiZam9_s/edit?gid=0#gid=0), with full pricing information for full transparency. 9 | * Notably, major well-known investors participated in this Bonding Curve period and continue to support the blockchain today, including [Sequoia](https://www.sequoiacap.com/article/diamondhands-spotlight/), [Andreessen Horowitz](https://a16zcrypto.com/portfolio/), [Distributed Global](https://www.distributedglobal.com/), [Hack VC](https://www.hack.vc/team), [TQ Ventures](https://www.tqventures.com/), [North Island Ventures](https://northisland.ventures/), [Blockchange](https://blockchange.vc/), and many others. 10 | * Team Allocation (\~20%). \~20% of the initial supply was allocated to the team that developed the DeSo Blockchain. This is listed in [the sheet](https://docs.google.com/spreadsheets/u/0/?q=deso%20bonding%20curve) along with the bonding curve purchases. 11 | * Proof of Work Mining (\~3%). The DeSo Blockchain was initially secured by Proof of Work mining for maximum decentralization. Once the distribution of tokens evolved to be sufficiently-decentralized, the network transitioned over to [Revolution Proof of Stake](https://revolution.deso.com) in 2024, which no longer distributes tokens to Proof of Work miners. 12 | 13 | The above is an exhaustive list of how the initial \~10.8M DESO were allocated. 14 | 15 | Later on, in 2024, in order to promote the adoption of staking to secure the network with the launch of [Revolution Proof of Stake](https://revolution.deso.com), a \~20% APY was offered for staking one's DESO to a validator. At the time of this writing, the APY is still 20%, but please check [the block explorer validator page](https://explorer.deso.com/validators) for the most up-to-date value. Although high, the staking APY does not result in the dilution of one's DESO holdings, so long as one stakes their DESO (and indeed one's ownership percentage actually increases when they stake because not all DESO is staked and earning rewards). 16 | 17 | **The above list is exhaustive: There are no DESO sources other than what is listed above, and DESO would be fixed-supply if not for staking APY.** 18 | 19 | Over time, as transaction volume increases on the network, and as the APY decreases as more validators emerge, we should expect DESO to become deflationary, and possibly hyper-deflationary. 20 | -------------------------------------------------------------------------------- /deso-tokenomics/no-equity-just-coins-and-code.md: -------------------------------------------------------------------------------- 1 | # No Equity, Just Coins and Code 2 | 3 | The DeSo Blockchain was bootstrapped and self-funded by [Nader Al-Naji](https://www.linkedin.com/in/nader-al-naji-86b14a3a/). In 2019, Nader recognized that special-purpose blockchains could vastly out-perform existing approaches on storage-heavy applications like social use-cases and advanced trading applications. And so he set about building DeSo to address what he felt were the largest opportunities in crypto. 4 | 5 | Nader and his team, which we often refer to as the DeSo Core Team, worked on developing the blockchain from 2019 until late 2020 when they officially launched the network, and third-party nodes started running. In addition to developing the DeSo Blockchain, the team also developed the first application, called [BitClout](https://docs.bitclout.com/), which went viral and pioneered a concept now known as "Social Tokens." In early 2021, the DeSo Blockchain code was made [100% open-source](http://github.com/deso-protocol/core), solidifying DeSo as a truly decentralized layer-1 platform. 6 | 7 | When they launched the network, the Core Team embedded a bonding curve mechanic that would mint DESO for Bitcoin in a fully-decentralized way. The idea was that users could sacrifice Bitcoin to get DESO in much the same way early Bitcoin users sacrificed CPU power to get Bitcoin. Thus the distribution mechanic could distribute DESO tokens in a fully-decentralized way to anyone, without geographic restrictions (much like Bitcoin mining). The details on the economics of this distribution are described in the [Initial Distribution](initial-deso-distribution.md) section. 8 | 9 | Importantly, although DESO could be purchased through this bonding curve mechanism, no equity has ever been issued or sold to finance the DeSo Blockchain's development. There is no "shareholder class" to create a conflict of interest with the token, DeSo is truly just "coins and code." It was Nader's explicit intent to avoid creating a conflict of interest between equity and tokens, as he saw the negative effects it could have, and this is why he self-funded its development for nearly two years and only issued tokens through a decentralized mechanism that was fully open to the public. This means in practice that, if you own DESO, then you own the exact same asset that everyone else owns, from top-tier VCs to ordinary people. 10 | 11 | This lies in stark contrast with other major blockchains, such as Solana, which have a for-profit VC-controlled entity behind them that is wholly separate from the token. We've seen with projects like Uniswap and Brave how this can lead to conflicts of interest, where value accrues to equity-holders who are owed a "fiduciary duty," rather than to token-holders, who don't have the same rights. Indeed, any token backed by a for-profit company like Uniswap or Solana could even be sued by equity-holders for distributing too much value to token-holders, rather than maximally milking the network value for equity-holders. These issues tend to be less important in the early days, but play a key role as networks mature and become structurally important. There does not exist, nor will there ever exist, such a problem with DESO. 12 | -------------------------------------------------------------------------------- /deso-tokenomics/the-bmf-burn-maximizing-fee-mechanism.md: -------------------------------------------------------------------------------- 1 | # The BMF: Burn-Maximizing Fee Mechanism 2 | 3 | Unlike virtually all other blockchains in existence, the DeSo Blockchain's fees are maximally burned in order to maximize the network value that accrues to the DESO token, without compromising the transaction ordering properties of blockchain fees and without compromising validators' incentives to run nodes. 4 | 5 | Although more sophisticated in practice, at a high level the BMF amounts to only paying the log of the fees to validators, while burning the rest. This means that if a fee is \~2x higher, it will only result in a linear increase in validator rewards. This results in higher fees still earning better placement in blocks, but without validators capturing the lion's share of the fees paid for block space priority. Thus a validator can expect to earn very little through transaction fees, as they should, with their operating model relying solely on a commission on delegated stake. Decoupling the fee revenue from validators' operating incentives in this way allows the network to pay validators the minimum required to operate the network while burning as close to 100% of the network revenue as possible. The full system is described in DeSo's open-source code [here](https://github.com/deso-protocol/core/blob/12fb9c8a3301469f1498e41b656fff624e32d083/lib/block_view.go#L4285), and in [the Revolution Proof of Stake Docs](https://revolution.deso.com). 6 | 7 | It is important to note, and perhaps surprising, that other blockchains do not optimize validator rewards and fee-burning in this way, even though fee-burning is the ultimate source of scarcity for blockchain networks in the long-term. For example, Ethereum's mechanism is highly-unoptimized, resulting in most of the fees going to "Miner-Extracted Value" or MEV, especially during times of high congestion (which is when most fees are earned). And Solana's mechanic is even less optimized, blindly burning 50% of fees without any serious attempt at optimization whatsoever. 8 | 9 | In contrast, DeSo's fee-burning mechanism was designed in direct conjunction with its validator reward mechanics, from the ground up, in order to ensure that both the cost of operating the network in the long-term is minimized and that maximum fees are burned. Failure to think critically about both of these problems together could result in either validators being paid too little to operate nodes or insufficient fees being burned in the long-term. And changing it after-the-fact becomes very difficult due to validators pushing back on economic adjustments that impact them. 10 | -------------------------------------------------------------------------------- /focus/decentralizing-social-media.md: -------------------------------------------------------------------------------- 1 | # Decentralizing Social Media 2 | 3 | The Focus platform stores all of its content on the DeSo blockchain, [whose code is 100% open-source](https://github.com/deso-protocol). This means that, just like with Bitcoin, anyone on the internet can [run a DeSo node](https://github.com/deso-protocol/run) that serves the Focus content, and every node on the network stores a full copy of all the data. This also means that anybody can build apps on top of the Focus data without the risk of being de-platformed, and they can even create their own completely novel UX’es and their own feed algorithms. You can learn more about the DeSo vision [here](https://docs.deso.org/). 4 | 5 | **What information is stored on-chain? Basically all of it.** Every profile, every post, every engagement, every follow, every DM (encrypted), every token holding, and on and on... As we built out Focus, we strived to make it so that every single feature, including complex features like paid reposts and unlockable content, is a feature that a third-party app could permissionlessly provide an interface to, based solely on the data that’s available on-chain. No walled gardens, no “data moats,” no BS. 6 | 7 | In the same way that you can move Bitcoin from one wallet to another, DeSo makes it so that you can move your identity and content, in the form of your profile, followers, posts, token balances, etc anywhere as well. Thus, in some sense, we hope Focus and DeSo will decentralize social media in much the same way as Bitcoin is decentralizing the financial system. 8 | -------------------------------------------------------------------------------- /focus/how-the-order-book-amms-work.md: -------------------------------------------------------------------------------- 1 | # How the Order-Book AMMs Work 2 | 3 | After your token is launched, it is automatically initialized with an AMM according to the following steps (according to your configuration when setting up your token). Note that you don't need to know much about these steps in order to launch a token because they will happen automatically with sane defaults if you just click through the token launch flow. 4 | 5 | 1. **Pre-Sale Auction.** Before your token's AMM starts up, there is a period where people can place bids on your token before all the sell orders have gone live. All of the tokens that are about to have their amms go live can be seen on the Launchpad page on the [Focus Trade Page](https://focus.xyz/trade). 6 | 2. **Placing Initial Orders.** Once your auction period is over, your AMM places its sell orders on the book, and hits whatever bids are currently there. This has the end result of executing an auction on your market to distribute the initial supply of your coin. Why do we do it like this? Well, first of all, it's extremely fun to participate in auctions like this (trust me, just try it). But, much more importantly, if this auction period didn't exist, then bots could "snipe" the beginning of your amm the minute the sell orders came on the book. This would give them cheap coins that they could then dump on everybody for a quick buck. It was a problem with BitClout, and it remains a problem with pump.fun. 7 | 3. **When a Sell Order is Hit.** When an AMM's sell order is hit it flips to a buy order using the funds that went into filling it. For example, if your AMM had an order to sell 1,000 for $0.001 and it got hit, then it would then place a bid order for very slightly less than $0.001 to buy 1,000 tokens. This behavior mimics a bonding curve, but the fact that the AMM runs on an order-book means third-party liquidity providers can also submit bids and asks alongside, or in between, the AMM's orders. 8 | 4. **When a Buy Order is Hit.** When an AMM buy order is hit, the reverse happens as a sell order. Again, the AMM simply mimics a bonding curve, but on an order-book where third-party liquidity providers can participate. 9 | 10 | What happens to profits earned by the AMM during the pre-sale auction or via spreads collected from flipping orders? And what happens if the market moves far beyond the AMM's bids, making its liquidity no longer needed (and thus extractable). This has not been decided yet, but it has been discussed by @nader [here](https://focus.xyz/post/4fdd462c79f24248f1b4c81af2ca1bb4c85e1425ab6e5e15e10e3798a02d2d0c). It can either be used to buy & burn $FOCUS, distributed to the creator, or used to buy & burn the creator's token. 11 | -------------------------------------------------------------------------------- /focus/the-social-airdrop.md: -------------------------------------------------------------------------------- 1 | # The Social Airdrop 2 | 3 | In order to bootstrap the initial adoption of the Focus platform, $FOCUS tokens are used to incentivize influencers to join and post about Focus to their followers (and of course if they launch tokens they earn fees, as do their referrers). 4 | 5 | With someone joins Focus and posts to their external social accounts about Focus, they get $FOCUS tokens in direct proportion to how much influence they have on these platforms. These rewards are referred to as "bounties," and anyone's reward can be quickly looked up on the [Bounty Hunter](https://focus.xyz/bounty) by entering their username on the external platform. 6 | 7 | We plan to support X, Instagram, YouTube, TikTok, Twitch, select email domains, DeSo, and OnlyFans, starting with X at launch. Each network will have a slightly different reward function based on (1) the data we can collect when someone connects their account and (2) the value of user promotion on each platform. 8 | 9 |
10 | 11 | In addition, if someone is referred by someone else, the referrer getz 10% of their joining bonus and 5% of all revenues they generate on the platform, forever. That means if you refer a significant influencer, you could get thousands of dollars up-front and potentially thousands more when they start generating income on the platform. Referring is as easy as sharing your link, and each external social account that your referee connects will earn them, and you, a separate airdrop amount based on the value of that account. 12 | 13 |
14 | 15 | To gamify the process of discovering peoples’ account values and inviting them to Focus, we introduce a tool that will launch alongside Focus called [The Bounty Hunter](https://focus.xyz/bounty). The Bounty Hunter allows users to immediately determine the value of all of their social accounts, as well as the value of all of their followers across all of their accounts. With this information, the user can not only determine how much their reward will be for joining, but also who the most valuable users in their network are, and how much they would get if they convinced them to join. It also provides a concrete estimate of how much the user can earn from sharing their referral link to all of their followers. 16 | 17 |
18 | 19 | Importantly, the maximum reward is only attained when a user posts on their other platforms about Focus, and leaves that post up for a sufficient amount of time (initially 24h). This makes the social airdrop effectively a bottom-up, decentralized, token-enabled form of ad-spend designed to initially bootstrap the network, and to disproportionately reward early adopters who put their reputation on the line to support the platform. 20 | 21 | In addition, all $FOCUS tokens distributed to users as incentives are locked for one year, and vest over 4 years subsequent to their one-year “cliff,” or five years total. This ensures that all users who receive tokens are fully-aligned with the platform for the long-term. 22 | 23 | The best part is that everyone who gets a reward becomes an owner of $FOCUS tokens, essentially making them part-owners of the platform itself. Imagine if you could get a percentage of Instagram or Twitter right when they were starting out. WIth those platforms, the early adopters got nothing, but with Focus they can get founder-level ownership just for joining and referring other users. 24 | -------------------------------------------------------------------------------- /focus/what-is-focus.md: -------------------------------------------------------------------------------- 1 | # The Crypto Social Network 2 | 3 | Focus is a new type of social network that mixes crypto speculation and social media. It introduces new ways for creators to monetize with crypto, including next-generation token mechanics, and leverages a new crypto-native approach to virality we call the social airdrop to maximize retention and solve the cold-start problem. Focus is built from the ground up on the state-of-the-art Decentralized Social blockchain, aka [DeSo](https://deso.com). 4 | 5 |
6 | 7 | ## Introduction 8 | 9 | **All content on-chain, controlled by your wallet.** Unlike with a traditional social network, all user content on Focus is stored directly on-chain, and end-to-end encrypted where needed, meaning nobody can ever censor your content. This means that posting, following, messaging, trading, and all social primitives are controlled solely by users’ public/private keypairs, which they automatically get when they create an account. This has the added benefit that all content is automatically digitally signed by users’ private keys, making users’ identities impossible to forge or spoof, no matter how advanced generative AI becomes. With Focus, you can finally own your content and your identity just like you own your Bitcoin. 10 | 11 | **New ways to monetize.** On the surface, Focus looks like Twitter but with anonymous crypto-enabled monetization mechanics that include next-generation token mechanics, paid reposts (aka decentralized ads), paid messages, paid unlockable content, and subscriptions, all payable in crypto from any blockchain (including BTC, ETH, SOL, DESO, and more). 12 | 13 | **The Feed Marketplace.** Because all accounts on Focus are also crypto wallets, Focus introduces new feed algorithms based on wallet balance that are much more resistant to bots and gaming than traditional social network signals. What’s more, thanks to the fact that all content is stored on-chain, anyone can create their own feed and list it in Focus’s Feed Marketplace, creating one of the first sustainable marketplaces for decentralized content curation. We deeply believe that open content, and open curation, enabled through something like Focus's Feed Marketplace, are the future of how information is shared on the internet (compared to the centralized, closed, and highly-censored platforms we use today). 14 | 15 | **No company, just coins and code.** Unlike traditional social networks, where a small group of venture capitalists and shareholders capture all the value, 100% of all fees generated by the Focus platform are used to buy & burn $FOCUS tokens, which anyone can buy and earn from day one. There is no equity and no for-profit corporate entity behind Focus. Tokens are purchasable and directly tradeable on the DeSo DEX, a fully decentralized on-chain order-book exchange, via [the Openfund app](https://openfund.com/trade/focus). Notably, $FOCUS tokens are also used to incentivize early adoption via a novel viral mechanic we call The Social Airdrop.\ 16 | -------------------------------------------------------------------------------- /for-node-operators/node-setup/managing-network-upgrades.md: -------------------------------------------------------------------------------- 1 | # Keeping Your Node Up-To-Date 2 | 3 | This is a step-by-step guide on how to stay up to date with hard forks of the core repository, as well as instructions for core team members on how to execute updates that could cause a hard fork on the network. This doc should help node operators and the core team release new code in an organized way, particularly so that the developer community has sufficient time and resources to upgrade their nodes. 4 | 5 | ## Instructions for Node Operators 6 | 7 | 1. Subscribe to release notifications on GitHub 8 | 1. Which repos? 9 | 1. [https://github.com/deso-protocol/core](https://github.com/deso-protocol/core) (important) 10 | 2. [https://github.com/deso-protocol/backend](https://github.com/deso-protocol/backend) (important) 11 | 3. [https://github.com/deso-protocol/rosetta-deso](https://github.com/deso-protocol/rosetta-deso) (important for exchanges like Coinbase) 12 | 4. [https://github.com/deso-protocol/identity](https://github.com/deso-protocol/identity) 13 | 5. [https://github.com/deso-protocol/frontend](https://github.com/deso-protocol/frontend) 14 | 2. How to subscribe 15 | 1. Click “Watch” at the top 16 | 2. Select “Custom” 17 | 3. Check “Releases” 18 | 2. Whenever a major version update occurs, e.g. moving from 2.9.9 to 3.0.0, be sure to read the release notes and reboot your node within the next week to avoid issues 19 | 1. Note that occasionally a resync will be required, which could cause \~20 minutes of downtime unless done in parallel with a second running node. Be sure to read the release instructions to avoid any interruptions. 20 | 3. Follow [@deso](https://diamondapp.com/u/deso) and [@nader](https://diamondapp.com/u/nader) on [node.deso.org](https://node.deso.org/) or [DiamondApp](https://diamondapp.com/) for on-chain announcements and discussion 21 | 4. Follow [@desoprotocol](https://twitter.com/desoprotocol) and [@nadertheory](https://twitter.com/nadertheory) on Twitter 22 | 23 | ## Instructions for Core Team 24 | 25 | ### Code preparation 26 | 27 | 1. Gate all the forking changes by a ForkHeight which initially should be set to `math.MaxUint32` for both mainnet and testnet, and 0 for regtest. 28 | 2. Verify that the code passes all basic tests: 29 | 1. core unit tests 30 | 2. core integration tests 31 | 3. node syncs with hypersync + txindex on testnet and mainnet 32 | 4. node syncs with blocksync + txindex on testnet and mainnet 33 | 5. rosetta can sync mainnet 34 | 6. repeat steps c. and d. for postgres 35 | 7. test that all of the changes work in the reference frontend 36 | 8. make sure to run more comprehensive tests when deploying a complex change 37 | 3. Assuming you’re ready with all the content for the steps in the next sections, you should announce everything at 12:00 PM PT and set the testnet fork height to 1 day from the announcement, and the mainnet fork height to **a minimum of** 7 days from the announcement. 38 | 1. We will strive to give as much time for node operators to upgrade as possible, erring on the side of two weeks. However, in the interest of moving quickly, it will sometimes be necessary to make updates with less warning, though generally with no less than one week of warning. 39 | 40 | ### Release preparation 41 | 42 | 1. Come up with a description of what happens in the fork. Make it a couple sentences, or a couple paragraphs depending on the scope of the change. See what fits based on next steps. 43 | 2. Draft a Fork Preparation Checklist document which is a step-by-step checklist/walkthrough of what node operators need to do in order to upgrade their nodes (inspired by [prism’s merge preparation checklist](https://docs.prylabs.network/docs/prepare-for-merge)) 44 | 3. (Optionally) Write a before and after table which describes what happens in the fork. The left column should describe different aspects of the “before” tech and the right shows how they updated / changed “after” the fork. (also [prism’s merge preparation docs](https://docs.prylabs.network/docs/prepare-for-merge#the-merge-before-and-now)) 45 | 4. Put all of the above in a new draft release on github, similar to how [consensys does it with teku](https://github.com/ConsenSys/teku/releases), or how [ethereum does it](https://github.com/ethereum/go-ethereum/releases) 46 | 5. Assuming the release number is XX.YY.ZZ (major.minor.patch): 47 | 1. You should increment the major XX 48 | 1. \-> if the node operators will be required to upgrade their software within a fixed amount of time, otherwise risking ending up on a stale fork. 49 | 2. You should increment the minor YY 50 | 1. \-> if the node operators can do nothing and still properly participate in the network. The code augments the node in a backwards-compatible fashion. 51 | 3. You should increment the patch ZZ 52 | 1. \-> If the update fixes a bug in a backwards-compatible fashion. 53 | 6. Cut the new release 54 | 55 | ### Announcement 56 | 57 | 1. Create twitter announcement for the fork 58 | 2. Create diamond announcement for the fork 59 | 3. Create discord announcement for the fork 60 | -------------------------------------------------------------------------------- /openfund/algorithmic-trading/README.md: -------------------------------------------------------------------------------- 1 | # Algorithmic Trading 2 | 3 | The Openfund platform is essentially a frontend client over the DeSo DEX, which powers its order-book functionality. As such, placing and managing orders on Openfund amounts to constructing and submitting transactions to the DeSo blockchain, which can be done totally permission-lessly, just like submitting a transaction to the Bitcoin network. In this section, we go over how to construct and submit transactions, and walk through the creation of a simple market-making bot. 4 | 5 | Read the next section to learn how to start algorithmic trading with the DeSo Python SDK. 6 | -------------------------------------------------------------------------------- /openfund/how-do-the-advanced-amms-work.md: -------------------------------------------------------------------------------- 1 | # How Do the Advanced AMMs Work? 2 | 3 | Coming Soon! (Once [Focus](https://focus.xyz) launches). 4 | 5 | In the meantime, our advanced AMMs are active on the [DESO](https://openfund.com/trade/DESO), [OPENFUND](https://openfund.com/trade/openfund), [BTC](https://openfund.com/trade/BTC), [ETH](https://openfund.com/trade/ETH), and [SOL](https://openfund.com/trade/SOL) markets on Openfund. 6 | -------------------------------------------------------------------------------- /openfund/openfund-governance.md: -------------------------------------------------------------------------------- 1 | # Openfund Governance 2 | 3 | The Openfund platform is essentially a frontend client on the DeSo DEX, which powers Openfund’s fully on-chain order-book functionality. 4 | 5 | Changes to the DeSo blockchain happen according to upgrades to its Revolution PoS consensus mechanism, which is described in detail [here](https://revolution.deso.com/) and [here](https://docs.deso.org/deso-validators/run-a-validator), with all current validators and their staking percentages listed on [the DeSo block explorer here](https://explorer.deso.com/validators). In simple terms, anyone can submit an upgrade to [DeSo’s fully open-source code](http://github.com/deso-protocol/core), but an upgrade to the DeSo blockchain goes through only if 2/3rds of the validators (weighted by stake) upgrade their software before a particular block height. This is similar to how other Proof of Stake blockchains work, such as Ethereum and Solana, and it ensures that changes to the blockchain get heavy oversight and buy-in from the major economic players in the ecosystem before they go through. For the avoidance of doubt, it is impossible to upgrade the DeSo blockchain without a 2/3rds stake-weighted majority accepting the changes, noting that the DeSo blockchain is [fully 100% open-source](https://github.com/deso-protocol/core). 6 | 7 | In contrast, Openfund is an app that is centrally managed. However, to bring the same level of oversight and buy-in that we have with DeSo to the Openfund platform, we have a built-in on-chain proposal mechanism that we have been using to approve all major decisions. Although not strictly binding, since decisions are recorded on-chain but not enforced on-chain, the proposal mechanism makes it easy for the core team to get the buy-in of the token-holders before moving forward with a major change. All past proposals can be seen [here](https://openfund.com/d/openfund) in the proposals tab, including the fee switch activation, and the core team does not ever intend to make a major change to the platform without first getting a plurality of token-holder-weighted consensus on the decision (with the exception of critical security issues that may arise and require quick action). The core team takes token-holder buy-in especially seriously where economic issues are concerned. 8 | -------------------------------------------------------------------------------- /openfund/the-deso-python-sdk/README.md: -------------------------------------------------------------------------------- 1 | # The DeSo Python SDK 2 | 3 | Everything you need to construct, sign, and submit transactions is in [the DeSo Python SDK](https://github.com/deso-protocol/deso-python-sdk). This is an advanced library that makes it extremely easy to do all of DeSo’s basic (and not-so-basic) transaction types. 4 | 5 | The best way to learn is to simply go through the README and run the code. Once you’ve gotten everything to a “SUCCESS” status, you can proceed to the challenges, which simultaneously walk you through how to build an advanced market-making bot, as well as advanced social bots. 6 | 7 | Read the next sections to learn how to get help from the community and test your knowledge. 8 | -------------------------------------------------------------------------------- /openfund/the-deso-python-sdk/ai-generating-your-code.md: -------------------------------------------------------------------------------- 1 | # AI-Generating Your Code 2 | 3 | Although the [DeSo Python SDK](https://github.com/deso-protocol/deso-python-sdk) has many useful features, sometimes it's easiest to create your own transaction flow from observing another app (such as Openfund or Focus). This section teaches you how to do that, and how to use AI to auto-generate your code: 4 | 5 | 1. Navigate to the "DAO Coin" tab on node.deso.org for Openfund here. Remember that "DAO Coin" is just an old term for "DeSo Token"! 6 | 2. Open the web inspector on your browser and navigate to the Network tab. 7 | 3. Filter the requests to get-hodlers-for-public-key. Click "Copy as CURL" to get the params used by the request. In addition, note "Copy Response" as we'll be using that too. 8 | 4. With the sdk loaded into your favorite AI tool, paste the result of "Copy as CURL" and the result of "Copy Response" into the chat, and ask it to add a function to get all the holders for a given token. 9 | 5. CONGRATS! You've just added a NEW FUNCTION to the sdk! You can use this process to automate anything you do on openfund.com, focus.xyz, and any DeSo app! 10 | 11 | PS: We may have used this exact method to write some of the [DeSo Python SDK](https://github.com/deso-protocol/deso-python-sdk). Ssshh don't tell anyone! :smiling\_face\_with\_tear: 12 | -------------------------------------------------------------------------------- /openfund/the-deso-python-sdk/creating-deso-testnet-accounts.md: -------------------------------------------------------------------------------- 1 | # Creating DeSo Testnet Accounts 2 | 3 | First, if you’re going to be writing a trading bot, it is best to familiarize yourself with the DeSo node testnet UI, node [accessible here](https://test.deso.org/), and the Openfund testnet UI, [accessible here](https://dev.openfund.com/trade). This will allow you to do everything with “fake money” so that you don’t put capital at risk until you’re sure everything is working properly. 4 | 5 | To set up a testnet account, simply execute the following steps: 6 | 7 | 1. Visit [https://test.deso.org](https://test.deso.org) 8 | 1. This is the reference node for testnet that most developers get started on when testing. Note that anyone can run a DeSo node by following the instructions in [the core repo](https://github.com/deso-protocol/core), this just happens to be a fairly reliable one. 9 | 2. Create an account 10 | 1. Note that DeSo wallets are managed locally in your browser. The DeSo wallet works almost exactly like MetaMask, only it doesn’t require the installation of a Chrome extension, and it supports much more granular and transparent permissions at an app level. This means that creating a wallet on one app results in that wallet being accessible to any other DeSo app as long as permissions are confirmed, including [Openfund](https://openfund.com), [Diamond](https://diamondapp.com), and [Focus](https://focus.xyz) (noting these are mainnet links, not testnet ones, so your testnet wallet won’t be accessible there). 11 | 1. Note that when you use an app, a “derived key” is issued that has much more limited permissions than your master key, which you have to accept before using the app. This allows you to use an app without having to hit “confirm” on low-value transactions (e.g. making posts or liking posts) while being 100% sure the app can’t steal funds. 12 | 2. We recommend always using seed phrases for test accounts, as that tends to be easier to manage. You can use one seed phrase and create new accounts with different indexes by hitting “add account” in the wallet. 13 | 3. When creating an account you can enter your phone number to get 1 free testnet $DESO from the faucet 14 | 1. Note that testnet $DESO does not have any value outside of the test environment! 15 | 2. If you don’t want to enter your phone number, some apps use the advanced captcha flow, such as [dev.openfund.com](http://dev.openfund.com). Eventually this flow will be integrated back into the reference node. 16 | 4. Once you have an account with starter DESO, you can visit the following links to test things: 17 | 1. Testnet explorer: [https://explorer-testnet.deso.com](https://explorer-testnet.deso.com) 18 | 1. Here, you can login and stake your DESO if you want. 19 | 2. Testnet Openfund: [https://dev.openfund.com/trade](https://dev.openfund.com/trade) 20 | 1. Here, you can place orders and use the inspector to see what transactions are being constructed and submitted to the DeSo blockchain. 21 | 22 | For a reference on all useful testnet links, including the testnet block explorer, [see here](https://docs.deso.org/deso-validators/run-a-validator#h.gcb427f1q4hl). 23 | 24 | For tips on creating lots of **mainnet** accounts with starter DESO in them, [see here](https://docs.deso.org/deso-tutorial-build-apps#tip-for-creating-lots-of-test-accounts). 25 | 26 | For a primer on building DeSo apps, [see here](https://docs.deso.org/deso-applications). Useful as a reference, or if you find something confusing in this guide. 27 | 28 | \ 29 | -------------------------------------------------------------------------------- /openfund/the-deso-python-sdk/getting-help-from-the-community.md: -------------------------------------------------------------------------------- 1 | # Getting Help from the Community 2 | 3 | Up-front, if you ever run into trouble and want to talk to someone, the [DeSo PoS Discussion Telegram Channel](https://t.me/deso_pos_discussion) is a great resource. Everyone who runs a node is in there, as well as members of the DeSo core team. Many there are generally very knowledgeable on the ins and outs of the DeSo blockchain, and super helpful to new users trying to understand what’s going on. We used to run a Discord, but we’ve found a simple dev-focused Telegram channel works better. 4 | 5 | If you ever run into issues while doing a swap, the [HeroSwap Support](https://t.me/heroswap) channel can help you. This shouldn’t be needed but we include it here for completeness. 6 | -------------------------------------------------------------------------------- /openfund/the-deso-python-sdk/market-making-bots.md: -------------------------------------------------------------------------------- 1 | --- 2 | coverY: 0 3 | --- 4 | 5 | # Market-Making Bots 6 | 7 | Use the [DeSo Python SDK](https://github.com/deso-protocol/deso-python-sdk) to complete the following Challenge Exercises, and build a fully-functioning market-making bot: 8 | 9 | 1. Get the market mid-price of $openfund on the openfund/deso market by using the get\_limit\_orders function. Beware of ASKs that look like BIDs, and vice versa! 10 | 2. Place a market order to buy 0.000001 DESO worth of $openfund. You should be able to do this with just your starter DESO. 11 | 3. Check your $openfund balance after doing the market order to confirm that you have the amount of $openfund that you expect to have. 12 | 4. Place a LIMIT order to BUY $openfund just below the market mid price, and a LIMIT order to SELL $openfund just above the market mid price. You should be able to do this now that you have both $openfund and $DESO from the previous step! The orders should "rest" on the book, without executing immediately. Save the order\_id from the transaction so you can manage the state of your order! The order\_id is simply the signed txn hash of the transaction you used to place the order. 13 | 5. Use get\_limit\_orders to tell if your order has been filled or not. An order will be filled when it no longer appears on the book. 14 | 6. Practice cancelling and replacing one of your orders using the sdk, and passing the order\_id from when you placed the order. 15 | 7. Write a simple routine to "flip" your buy into a sell once it's been filled (at a slightly higher price so you earn a "spread"). Do the same for your other limit order. 16 | 8. ADVANCED: Acquire $100 worth of $openfund and $100 worth of $DESO. Place 10 bids and 10 asks for $10 each around the market mid using an ATOMIC transaction. 17 | 9. ADVANCED: Write a routine to "flip" your asks to bids when they're filled (with a spread so you make some money on the volatility!). Do the same for your bids. 18 | 10. CONGRATS! If you made it this far, you are officially a market-maker on the DeSo DEX! The AMMs that power Focus and Openfund are essentially a highly-sophisticated and scaled-up version of what you just did. 19 | -------------------------------------------------------------------------------- /openfund/the-deso-python-sdk/social-ai-agents.md: -------------------------------------------------------------------------------- 1 | # Social AI Agents 2 | 3 | Use the [DeSo Python SDK](https://github.com/deso-protocol/deso-python-sdk) to build new kinds of entertaining (and possbly lucrative) social agents: 4 | 5 | 1. Use the sdk to create a post from your account. Running the main properly should already achieve this. Edit the text to something more fun. 6 | 2. Use the sdk to follow @nadertheory on testnet and @nader on mainnet. 7 | 3. Use the sdk to repost something from your account. A repost uses the same submit\_post but with RepostedPostHashHex set. 8 | 4. Use the sdk to comment on someone's post. A comment is just a post with a ParentPostHash set. 9 | 5. ADVANCED: Use the sdk to write a bot that queries an AI API to automatically reply to all of your posts with something meaningful and useful. 10 | 6. ADVANCED: Use the sdk to write a bot that auto-replies to anyone who comments on your post with something meaningful from your personal account. 11 | 7. ADVANCED: Use the sdk to send a paid message to someone. 12 | -------------------------------------------------------------------------------- /openfund/the-deso-python-sdk/write-blockchain-bots-with-ai.md: -------------------------------------------------------------------------------- 1 | # Write Blockchain Bots with AI 2 | 3 | You may have noticed that the [DeSo Python SDK](https://github.com/deso-protocol/deso-python-sdk) is a single Python file. There is tremendous value in this because it means you can simply "drop" the entire sdk into your favorite AI and ask it to write new functions for you, or to put together the existing functions in novel ways. Keep this in mind as you do the other exercises in this section. It may help to load the sdk into an AI before you begin so you're ready to ask it questions! 4 | -------------------------------------------------------------------------------- /privacy-and-security.md: -------------------------------------------------------------------------------- 1 | # Privacy and Security 2 | 3 | ## **What is a seed phrase?** 4 | 5 | Your seed phrase is the password that controls your entire account. **Your seed phrase can never be changed and sharing your seed phrase with anyone could result in total loss of funds.** 6 | 7 | ## **Do DeSo applications have access to my seed phrase?** 8 | 9 | **No, DeSo apps using DeSo Identity Service do not have access to your seed phrase.** Your seed is stored in your browser in a highly-secured `iframe` that is completely isolated from the rest of the app. Transactions are signed in your browser by this `iframe` and **your seed phrase never leaves your browser.** 10 | 11 | ## **How do I keep my account safe?** 12 | 13 | **For maximum security, the developer community recommends you use mobile browsers or the DeSo desktop app to access DeSo application.** 14 | 15 | Both mobile browsers and the DeSo desktop app are secured, sandboxed environments that cannot be easily compromised by third party attackers. 16 | 17 | While DeSo applications are generally safe to access in a regular Desktop browser like Chrome, Safari, Firefox, etc, there is some risk that malicious browser extensions could steal your seed phrase if you give them access to DeSo applications. **This should be rare, but if you own a large amount of DeSo it is recommended that you either disable extensions manually or use Incognito mode, which disables extensions automatically.** 18 | 19 | Furthermore, if you own a large amount of DeSo it may be prudent to create two separate accounts: one account that you use to post and follow, and a separate account to hold your coins. 20 | 21 | ## **What do I do i**f I lose my seed phrase? 22 | 23 | Because your seed phrase is stored exclusively in your browser, it cannot be recovered by any third party. **If you lose your seed phrase, currently the only option is to create a new account, save the new seed phrase, and send all of your holdings to this new account.** You may need to liquidate your creator coin holdings into DeSo first. You can transfer a username by first changing the username on the old account and then quickly claiming the username with the new account. 24 | 25 | We apologize for the inconvenience here. We know this process is not ideal, we're working on alternative solutions, and hope to have an easier recovery path for users in the future. 26 | 27 | ## How does DeSo Identity work? 28 | 29 | DeSo Identity, located at [identity.deso.org](https://identity.deso.org), safely stores your sensitive account information in your browser's local storage. To protect private key material the identity service has minimal dependencies, a strict content security policy, and is audited by multiple security firms. **For now, the developer community does not recommend entering your seed phrase anywhere other than identity.deso.org.** Always check the URL bar to verify you are using identity.deso.org. 30 | 31 | The DeSo Identity Service aims to make it easy for users to use a wide array of community projects safely and securely. Apps and nodes can integrate with DeSo Identity to onboard users without requiring them to enter private key material. Users can easily grant different levels of access on a per-account basis. The developer community is working on complete documentation for integrating with the DeSo Identity Service. 32 | 33 | -------------------------------------------------------------------------------- /zhong-wen/shen-me-shi-bitclout-what-is-bitclout.md: -------------------------------------------------------------------------------- 1 | # 什么是DeSo? \(What is DeSo?\) 2 | 3 | **DeSo**是一个新型的社交网络,从头构建了用户可以利用其影响力和内容变现机制的自定义的区块链。 其架构和比特币类似,但却有着更大的规模和吞吐量, 可以更好地支持社交媒体复杂的数据,如发帖,用户资料,粉丝,投机预测等功能。并且和比特币一样,DeSo是一个完全开源的项目,其背后没有公司,只有代币和代码。 4 | 5 | ## 购买**DeSo**代币 6 | 7 | DeSo区块链有自己的原生代币,叫DeSo, 用户可以使用它在平台上进行各种操作,包括购买一种如下介绍的叫做“创作者代币**”**的新型资产。 8 | 9 | 任何人都可以在内置程序中在几分钟内用比特币通过去中心化的“原子交换”来购买DeSo。 具体步骤参见“购买DeSo”页面。DeSo 的供应量上限约为 1080 万,大约是比特币的一半,使其自然稀缺。 10 | 11 | ## 什么是创作者代币? 12 | 13 | ### 每个人都有一个代币 14 | 15 | 在平台上的每个用户资料中都有一个独特的可以被任何人买卖的代币,也就是“创作者代币”,它会在你创建用户资料时自动生成。其代币价格会随时购买量增长而上升,反之随着出售量上升而下降。 16 | 17 | ### 你可以购买您喜欢的人的代币 18 | 19 | 您可以通过在其他用户资料页面,直接点击“购买”来获得他人的代币。您可以通过搜索功能或在创作者代币“领袖排行榜”(如下所示)上找到其他用户账户。DeSo平台已经预建立了twitter上最有影响力的15000大“V”用户的信息,这也就意味着您可以在他们正式加入平台之前就可以买卖与之相关的“创作者代币“ 。这些“预留”的用户账户的旁边有一个“时钟”图标,表明此用户还没有加入平台,反之则会出现蓝色对勾图标 20 | 21 | ![](../.gitbook/assets/image%20%287%29%20%281%29%20%281%29%20%281%29.png) 22 | 23 | ### 发推特以领取用户账户 24 | 25 | 这些预留用户的所有者可以在DeSo上导航到他们的主页并点击发推特确认和公开他们的DeSo公钥(如下图所示)。完成这个步骤后,他们将获得其账户的全部使用权及这个账户相应的所有创作者代币(参见创立者奖励\)只有关联该twitter账户的所有者才能去认证这个预留账户。 26 | 27 | ![](../.gitbook/assets/image%20%285%29%20%281%29.png) 28 | 29 | ### 创作者代币的用途? 30 | 31 | 创作者代币是一种关联个人声誉而非公司或者商品的新型资产,是第一个可以将社会影响力可以作为资产交易的工具。实际上,某人的代币应该是与这个人的社会影响力密切相关。比如,如果Elon Musk成功地实现了将第一个人类送上火星,那么他的代币价格理论上会上涨, 反之若他在一个新闻发布会上有不当言论,那么他的代币价格应该就会下跌。这样,人们可以因相信某人的潜力而购买其代币进行投资,并在其证明潜力和实现成功后在财务上得到回报。交易者也可以通过买卖波动来获利。 32 | 33 | 综上所述,创造者代币还有很多令人激动的方向和机会,我们希望在不久的将来将他们整合在一起, 例如: 34 | 35 | #### 权益人代表大会 36 | 37 | 创作者可以只允许持有一定其代币的持币用户评价其帖子。这样就使得任何想在这个创作者有关内容上发声的用户必须要通过购买这个用户代币的方式与其建立联系。这样的联结方式不仅显著降低了垃圾信息的数量,并且创立了对此用户代币的显著需求,你可以想象下,比如Elon Musk或者Chamath举办一场有最低持币门槛的AMA或者是依照用户持币数量来回答问题。 38 | 39 | #### 优先信息 40 | 41 | 大多数的创作者,都会在其社交媒体收件箱中收到很多的垃圾信息。通过DeSo平台,可以限定只有拥有一定数量其代币的用户发信或者就是直接的优先排序和增加持币多用户的信息优先级。或者,他们可以规定收取一定的代币来开放收件箱。这些都可以一方面增加其代币需求并且同时过滤垃圾信息。 42 | 43 | #### 赞助帖子 44 | 45 | 创作者可以有一个收件箱, 这里任何人可以“出价”让他们去重新发布内容(也称为“转发”)设想下,如果您可以让Kim Kardashian转发您的时尚品牌,您可以直接向她的收件箱发送请求,如果她转推就会保留您的钱。这些投标也可以用创作者代币来进行,这样又显著的增加了对代币的需求。 46 | 47 | #### 优质内容 48 | 49 | 拥有一定数量创作者代币的用户可以访问特殊内容,又或者人们需每月以创作者代币支付订阅费用才可以获得某些优质内容。 50 | 51 | #### 分配与参与模式 52 | 53 | 创作者还可以使用其代币将稀有资源分配给最大的持币者。例如:想象一下,某位名人可以选择在某个特定日期与其最大代币持有者共进午餐。又或者,他们可以向前1000代币持有者增予1000张签名的海报。 这还仅仅是创作者利用代币与粉丝互动的开始,所有这些想法都将大大提高对这些代币的需求。 54 | 55 | #### 商业化点赞 56 | 57 | 点赞可以被想象成对创作者代币的购买行为。点赞需要花费一定成本,但是相应的您也可以获得您点赞的创作者的代币(这样有效地建立了购买代币与其内容直接联结的捷径)。类似的功能可以作为提示更优质内容的有效信号。 58 | 59 | #### 新兴现象 60 | 61 | 当给予人们能投机一个人声望的能力时会发生什么呢?我们不得而知,但是有一个功能已经浮现,就是所谓的“购买和转发”。通常,转发不会带来任何好处。即便这个人因为您日后成为超级巨星,幸运的话,几年后也许这个人还记得您的名字。相反的,在DeSo, 如果您持有某人的代币,然后转发他们的内容,您不仅可以在他们日后爆发后随之获得经济利益,同时也更益于炫耀。想象下,您说“我很早就转推了她”和“我以0.5美元购买了她的代币,现在是这代币价值500美元,并且我已经做了数百次了,这些都记录在区块链上”之间的区别。后者,显然是完全不同的游戏水准。而且这并不只是名人的游戏。如果您知道某人很有影响力,又或者您认识一个认识某人的人,你可以购买代币发送给其他人,以便他们可以购买代币和转发内容。这样就建立了多层次的激励机制。有趣之处在于这种机制并不是在产品中有意设计的,它是自发的在创作者代币的机制上产生的新兴现象,那么想想就激动,我们究竟还有多少还没有想到的创新动力? 62 | 63 | ### 创作者代币供应曲线 64 | 65 | 创作者代币是天然稀缺的,每个用户资料会存在少于**100**到**1500**枚代币。这是因为越多人 66 | 67 | 购买某个人账户的代币,其价格就会以越来越快的速度自然上涨。这也意味着,最终,可能需要花费数十亿美金去铸造一枚新的代币。 68 | 69 | 决定创作者代币价格的公式或“曲线”如下:请注意创作者代币通常是由DeSo加密货币来买卖,但是这里我们提供了一以美元形式的公式,以方便展示计算: 70 | 71 | price\_in\_deso (以DeSo为基准代币价格) = .003 x creator\_coins\_in\_circulation^2 (创作者代币流通数量) 72 | 73 | `price_in_usd(以美元为基准代币价格) = .003 x creator_coins_in_circulation^2 (创作者代币流通数量)x deso_price_in_usd (DeSo代币的美元价值)` 74 | 75 | 当您创建一个用户资料时,其初始代币数量和价格是零。您如果想购买这个账户的代币,那么根据上面的价格曲线,系统会自动铸造代币并出售给您。并且随着购买代币的数量增多,它的价格也越来越高,相应地您用来购买代币的资金用来兑换这些代币。另一方面,如果您想要出售代币,账户会自动从之前锁定的资金依据曲线购买您手中的代币。因此,购买代币推高代币价格,并且锁定资金在账户中;卖出代币销毁代币降低代币价格释放锁定资金,这也被通常称做“自动做市商”,Uniswap和Bancor等协议也由同样概念驱动。 76 | 77 | 下面是一个创作者代币价格曲线的图形,该曲线像是由某账户中代币流动数量的函数曲线。我们也加入了一个展示其价值的表格。两者均假设DeSo的价格为16美金。注意对价格曲线“积分”得出在账户中锁定的金额,该金额等于流入改账户的“净”金额,(包含在表格的第三栏中)。如果您想自己进行计算,也可以只用此[工作表](https://docs.google.com/spreadsheets/d/1zBEQBBoS12ZhFpPbB13-GTZ8keDVlstRG3l2If78pWM/edit?usp=sharing)(请制作副本并进行编辑)在此[链接](https://yos.io/2018/11/10/bonding-curves/)可以了解关于联合曲线的更多内容。 78 | 79 | | 创作者代币流通量 | 创作者代币价格(美金) | 总锁定价值(美金) | 80 | | :--- | :--- | :--- | 81 | | 5 | $1.2 | $2 | 82 | | 10 | $4.80 | $16 | 83 | | 20 | $19.20 | $128 | 84 | | 40 | $76.80 | $1,024 | 85 | | 80 | $307.20 | $8,192 | 86 | | 160 | $1,228.80 | $65,536 | 87 | | 320 | $4,915.20 | $524,288 | 88 | | 640 | $19,660.80 | $4,194,304 | 89 | | 1280 | $78,643.20 | $33,554,432 | 90 | 91 | ![](../.gitbook/assets/image%20%286%29%20%281%29%20%281%29.png) 92 | 93 | \(创作者代币价格vs创作者代币流通数量\) \(创作者代币流通数量\) 94 | 95 | ### 创始人奖励 96 | 97 | 每个账户都会允许保留一定比例的代币作为**“**创始人奖励**”**例如:如果某人将其创始人奖励设置为**10%**,那么有人购买了价值**100DeSo**的其代币,相应的**10DeSo**代币会用来购买创作者代币,这些代币将会发送到创作者而非购买者的钱包。 98 | 99 | 综上所述,我们认为创作者拥有他们代币的增值部分的更优的方式是,在创立个人资料时就预先买入一部分代币,并将其创始人奖励百分比设为**0**。这样,因为在开始时这些代币的价格最低,这样减少了在日后购买其代币的价值磨损。 虽然如此,目前创始人奖励**“**合理默认**”**比例是**10%**, 这确保了他们即使不做任何行动也会拥有一部分其代币。 100 | 101 | ## 去中心化的力量 102 | 103 | 就像比特币一样,互联网上的任何人都可以运行提供DeSo内容的DeSo“节点”, 并且每个节点都存储所有数据的完整副本。 这意味着,任何人都可以在DeSo的数据基础上构建应用程序,而不用担心被去平台化,并且每个节点可以自行定制信息的审核和展示策略。当您访问DeSo.com时候,您在使用我们的节点,但是还有无数像您一样节点同时运行着网络。长远来看,您可能可以从成千上万的节点获取同样的内容,每个节点有他们自定的盈利政策。也意味着您的登录名可以在运行DeSo的任意域名上登录。就像您可以从一个钱包到另一个钱包转移比特币一样, 您也可以在粉丝,帖子,创作者代币余额,等任何地方转移您的“Clout”代币。因此, 从某种意义上来说,DeSo正在以比特币去中心化金融系统的方式来去中心化社交媒体。 104 | 105 | -------------------------------------------------------------------------------- /zhong-wen/shi-mo-shi-deso-what-is-deso.md: -------------------------------------------------------------------------------- 1 | # 什么是DeSo? (What is DeSo?) 2 | 3 | **DeSo**是一个新型的社交网络,从头构建了用户可以利用其影响力和内容变现机制的自定义的区块链。 其架构和比特币类似,但却有着更大的规模和吞吐量, 可以更好地支持社交媒体复杂的数据,如发帖,用户资料,粉丝,投机预测等功能。并且和比特币一样,DeSo是一个完全开源的项目,其背后没有公司,只有代币和代码。 4 | 5 | ## 购买**DeSo**代币 6 | 7 | DeSo区块链有自己的原生代币,叫DeSo, 用户可以使用它在平台上进行各种操作,包括购买一种如下介绍的叫做“创作者代币**”**的新型资产。 8 | 9 | 任何人都可以在内置程序中在几分钟内用比特币通过去中心化的“原子交换”来购买DeSo。 具体步骤参见“购买DeSo”页面。DeSo 的供应量上限约为 1080 万,大约是比特币的一半,使其自然稀缺。 10 | 11 | ## 什么是创作者代币? 12 | 13 | ### 每个人都有一个代币 14 | 15 | 在平台上的每个用户资料中都有一个独特的可以被任何人买卖的代币,也就是“创作者代币”,它会在你创建用户资料时自动生成。其代币价格会随时购买量增长而上升,反之随着出售量上升而下降。 16 | 17 | ### 你可以购买您喜欢的人的代币 18 | 19 | 您可以通过在其他用户资料页面,直接点击“购买”来获得他人的代币。您可以通过搜索功能或在创作者代币“领袖排行榜”(如下所示)上找到其他用户账户。DeSo平台已经预建立了twitter上最有影响力的15000大“V”用户的信息,这也就意味着您可以在他们正式加入平台之前就可以买卖与之相关的“创作者代币“ 。这些“预留”的用户账户的旁边有一个“时钟”图标,表明此用户还没有加入平台,反之则会出现蓝色对勾图标 20 | 21 | ### 发推特以领取用户账户 22 | 23 | 这些预留用户的所有者可以在DeSo上导航到他们的主页并点击发推特确认和公开他们的DeSo公钥(如下图所示)。完成这个步骤后,他们将获得其账户的全部使用权及这个账户相应的所有创作者代币(参见创立者奖励)只有关联该twitter账户的所有者才能去认证这个预留账户。 24 | 25 | ![](<../.gitbook/assets/image (8) (2) (2) (2) (2) (1).png>) 26 | 27 | ### 创作者代币的用途? 28 | 29 | 创作者代币是一种关联个人声誉而非公司或者商品的新型资产,是第一个可以将社会影响力可以作为资产交易的工具。实际上,某人的代币应该是与这个人的社会影响力密切相关。比如,如果Elon Musk成功地实现了将第一个人类送上火星,那么他的代币价格理论上会上涨, 反之若他在一个新闻发布会上有不当言论,那么他的代币价格应该就会下跌。这样,人们可以因相信某人的潜力而购买其代币进行投资,并在其证明潜力和实现成功后在财务上得到回报。交易者也可以通过买卖波动来获利。 30 | 31 | 综上所述,创造者代币还有很多令人激动的方向和机会,我们希望在不久的将来将他们整合在一起, 例如: 32 | 33 | #### 权益人代表大会 34 | 35 | 创作者可以只允许持有一定其代币的持币用户评价其帖子。这样就使得任何想在这个创作者有关内容上发声的用户必须要通过购买这个用户代币的方式与其建立联系。这样的联结方式不仅显著降低了垃圾信息的数量,并且创立了对此用户代币的显著需求,你可以想象下,比如Elon Musk或者Chamath举办一场有最低持币门槛的AMA或者是依照用户持币数量来回答问题。 36 | 37 | #### 优先信息 38 | 39 | 大多数的创作者,都会在其社交媒体收件箱中收到很多的垃圾信息。通过DeSo平台,可以限定只有拥有一定数量其代币的用户发信或者就是直接的优先排序和增加持币多用户的信息优先级。或者,他们可以规定收取一定的代币来开放收件箱。这些都可以一方面增加其代币需求并且同时过滤垃圾信息。 40 | 41 | #### 赞助帖子 42 | 43 | 创作者可以有一个收件箱, 这里任何人可以“出价”让他们去重新发布内容(也称为“转发”)设想下,如果您可以让Kim Kardashian转发您的时尚品牌,您可以直接向她的收件箱发送请求,如果她转推就会保留您的钱。这些投标也可以用创作者代币来进行,这样又显著的增加了对代币的需求。 44 | 45 | #### 优质内容 46 | 47 | 拥有一定数量创作者代币的用户可以访问特殊内容,又或者人们需每月以创作者代币支付订阅费用才可以获得某些优质内容。 48 | 49 | #### 分配与参与模式 50 | 51 | 创作者还可以使用其代币将稀有资源分配给最大的持币者。例如:想象一下,某位名人可以选择在某个特定日期与其最大代币持有者共进午餐。又或者,他们可以向前1000代币持有者增予1000张签名的海报。 这还仅仅是创作者利用代币与粉丝互动的开始,所有这些想法都将大大提高对这些代币的需求。 52 | 53 | #### 商业化点赞 54 | 55 | 点赞可以被想象成对创作者代币的购买行为。点赞需要花费一定成本,但是相应的您也可以获得您点赞的创作者的代币(这样有效地建立了购买代币与其内容直接联结的捷径)。类似的功能可以作为提示更优质内容的有效信号。 56 | 57 | #### 新兴现象 58 | 59 | 当给予人们能投机一个人声望的能力时会发生什么呢?我们不得而知,但是有一个功能已经浮现,就是所谓的“购买和转发”。通常,转发不会带来任何好处。即便这个人因为您日后成为超级巨星,幸运的话,几年后也许这个人还记得您的名字。相反的,在DeSo, 如果您持有某人的代币,然后转发他们的内容,您不仅可以在他们日后爆发后随之获得经济利益,同时也更益于炫耀。想象下,您说“我很早就转推了她”和“我以0.5美元购买了她的代币,现在是这代币价值500美元,并且我已经做了数百次了,这些都记录在区块链上”之间的区别。后者,显然是完全不同的游戏水准。而且这并不只是名人的游戏。如果您知道某人很有影响力,又或者您认识一个认识某人的人,你可以购买代币发送给其他人,以便他们可以购买代币和转发内容。这样就建立了多层次的激励机制。有趣之处在于这种机制并不是在产品中有意设计的,它是自发的在创作者代币的机制上产生的新兴现象,那么想想就激动,我们究竟还有多少还没有想到的创新动力? 60 | 61 | ### 创作者代币供应曲线 62 | 63 | 创作者代币是天然稀缺的,每个用户资料会存在少于**100**到**1500**枚代币。这是因为越多人 64 | 65 | 购买某个人账户的代币,其价格就会以越来越快的速度自然上涨。这也意味着,最终,可能需要花费数十亿美金去铸造一枚新的代币。 66 | 67 | 决定创作者代币价格的公式或“曲线”如下:请注意创作者代币通常是由DeSo加密货币来买卖,但是这里我们提供了一以美元形式的公式,以方便展示计算: 68 | 69 | $$ 70 | price\_in\_deso = .003 \times creator\_coins\_in\_circulation^2 71 | \\ 72 | price\_in\_usd = .003 \times creator\_coins\_in\_circulation^2 \times deso\_price\_in\_usd 73 | $$ 74 | 75 | 当您创建一个用户资料时,其初始代币数量和价格是零。您如果想购买这个账户的代币,那么根据上面的价格曲线,系统会自动铸造代币并出售给您。并且随着购买代币的数量增多,它的价格也越来越高,相应地您用来购买代币的资金用来兑换这些代币。另一方面,如果您想要出售代币,账户会自动从之前锁定的资金依据曲线购买您手中的代币。因此,购买代币推高代币价格,并且锁定资金在账户中;卖出代币销毁代币降低代币价格释放锁定资金,这也被通常称做“自动做市商”,Uniswap和Bancor等协议也由同样概念驱动。 76 | 77 | 下面是一个创作者代币价格曲线的图形,该曲线像是由某账户中代币流动数量的函数曲线。我们也加入了一个展示其价值的表格。两者均假设DeSo的价格为16美金。注意对价格曲线“积分”得出在账户中锁定的金额,该金额等于流入改账户的“净”金额,(包含在表格的第三栏中)。如果您想自己进行计算,也可以只用此[工作表](https://docs.google.com/spreadsheets/d/1zBEQBBoS12ZhFpPbB13-GTZ8keDVlstRG3l2If78pWM/edit?usp=sharing)(请制作副本并进行编辑)在此[链接](https://yos.io/2018/11/10/bonding-curves/)可以了解关于联合曲线的更多内容。 78 | 79 | ![](<../.gitbook/assets/image (6) (1) (6).png>) 80 | 81 | | 创作者代币流通量 | 创作者代币价格(美金) | 总锁定价值(美金) | 82 | | -------- | ----------- | ----------- | 83 | | 5 | $1.2 | $2 | 84 | | 10 | $4.80 | $16 | 85 | | 20 | $19.20 | $128 | 86 | | 40 | $76.80 | $1,024 | 87 | | 80 | $307.20 | $8,192 | 88 | | 160 | $1,228.80 | $65,536 | 89 | | 320 | $4,915.20 | $524,288 | 90 | | 640 | $19,660.80 | $4,194,304 | 91 | | 1280 | $78,643.20 | $33,554,432 | 92 | 93 | (创作者代币价格vs创作者代币流通数量) (创作者代币流通数量) 94 | 95 | ### 创始人奖励 96 | 97 | 每个账户都会允许保留一定比例的代币作为**“**创始人奖励**”**例如:如果某人将其创始人奖励设置为**10%**,那么有人购买了价值**100DeSo**的其代币,相应的**10DeSo**代币会用来购买创作者代币,这些代币将会发送到创作者而非购买者的钱包。 98 | 99 | 综上所述,我们认为创作者拥有他们代币的增值部分的更优的方式是,在创立个人资料时就预先买入一部分代币,并将其创始人奖励百分比设为**0**。这样,因为在开始时这些代币的价格最低,这样减少了在日后购买其代币的价值磨损。 虽然如此,目前创始人奖励**“**合理默认**”**比例是**10%**, 这确保了他们即使不做任何行动也会拥有一部分其代币。 100 | 101 | ## 去中心化的力量 102 | 103 | 就像比特币一样,互联网上的任何人都可以运行提供DeSo内容的DeSo“节点”, 并且每个节点都存储所有数据的完整副本。 这意味着,任何人都可以在DeSo的数据基础上构建应用程序,而不用担心被去平台化,并且每个节点可以自行定制信息的审核和展示策略。当您访问DeSo.com时候,您在使用我们的节点,但是还有无数像您一样节点同时运行着网络。长远来看,您可能可以从成千上万的节点获取同样的内容,每个节点有他们自定的盈利政策。也意味着您的登录名可以在运行DeSo的任意域名上登录。就像您可以从一个钱包到另一个钱包转移比特币一样, 您也可以在粉丝,帖子,创作者代币余额,等任何地方转移您的“Clout”代币。因此, 从某种意义上来说,DeSo正在以比特币去中心化金融系统的方式来去中心化社交媒体。 104 | -------------------------------------------------------------------------------- /zhong-wen/yuan-jing-the-vision.md: -------------------------------------------------------------------------------- 1 | # 愿景 \(The Vision\) 2 | 3 | ## **DeSo**的灵感来源 4 | 5 | 当今时代,社交媒体存在诸多问题: 6 | 7 | * 没有关注内容创造者奖励方式的任何创新。大多数的内容创作者的收入远远小于在现有平台上所创造的价值和应得收入。 8 | * 少数公司却有效地控制了当今公众舆论。他们根据自身的广告收益而不是公众利益来决定我们看到的内容。 9 | * 占据市场**“**统治**”**地位的公司切断了第三方开发者的可能性。“当权者”完全关闭了对其数据的访问路径,并且快速克隆市场上出现的创新产品用其数据壁垒取得竞争优势, 扼杀了产品创新和公平竞争。 10 | 11 | DeSo的灵感来自于一个重要概念, 即:如果能将金融投机和社交媒体恰当地结合在一起,那么不仅可以创造出一款新颖的不基于广告收入的创作者变现产品,并且同时可以创造一种全新的商业模式以解决当今社交媒体存在的诸多问题。 12 | 13 | 为了实现这一目标,DeSo从比特币和以太坊受到启发。 这些平台取代了封闭的传统的金融生态系统,展现出了创新的开放性的替代方案。任何人都可以在其生态上建立和开发,极大地促进了竞争和创新。比特币和以太坊,他们没有“数据护城河”,事实上,他们越开放,在其生态上的开发者越多,比特币和以太坊的持有者积累的价值也就越高。这些项目首次展现出了,基于数据开放社区同样可以打造主流平台;避免建立一家公司为了股东获利而牺牲他人利益。**DeSo**构想:这种同样的去中心化金融的模式是否也可以应用于建立去中心化的社交媒体? 14 | 15 | ## 什么是**DeSo**? 16 | 17 | 目前:DeSo 从根本上要做两件事: 18 | 19 | * 一个新型的社交网络**.**如果您用过DeSo, 那么会知道像twitter一样, 它可以使用户发贴,但是在其基础上引入了“创作者代币” 以提供一种新型的变现工具。借助DeSo,每位创作者都会获得一个任何人都可以在平台上自由买卖的代币。这为内容创造者提供了创新的变现方式,并且使得与其平台粉丝建立更深厚的联系。不过“创作者代币”还仅仅只是创新的开始,您可以通过此链接去了解更多DeSo产品相关的信息 [点此链接](https://docs.deso.org). 20 | * 一种新型的区块链:从项目创建伊始,DeSo就决定打造一个独立的自定义区块链平台。其架构类似于比特币,但却为了支持社交平台而重新设计。DeSo并不是一家公司,它没有董事会,没有CEO,像比特币一样,在节点上依靠代码运行。用户资料,发帖,关注…等所有信息都储存在每个人都可以访问的公共区块链上。使DeSo成为了一个完全开放的平台,去解决当今社交媒体存在的诸多问题。 21 | 22 | ## 终极目标: 23 | 24 | 现今任何一个在facebook和twitter上的帖子均属于这些公司而不是发布者,所得利益也流向了这些公司。 25 | 26 | 相比之下,DeSo将所有的数据存储在公共区块链上,这也意味着世界上的任何一个人都可以运行一个“节点”来发自己的内容。举例来说,diamondapp.com也运行了一个有关加密货币内容的节点。同理其他“垂直”内容发布者也同样可以进入这个市场,创造相应内容。想象一下:如果ESPN在DeSo上运行其节点,可以为用户提供最优质的体育内容;又或者Politico在DeSo上运行节点也可以发布最好的政治内容。此外,由于DeSo是完全开源的,这些公司甚至可以自定义其用户界面和算法,以特别方式为其内容发布者和内容进行排序和评级来为其特定客户提供服务。这样,一个由少数巨头控制提供信息方式的局面会很快被打破,使得用户有无数的信息来源的选择,同时每个信息源也有其各自专注的领域。 27 | 28 | 不仅如此,因为信息是存储在公共区块链上,只要一位工程师,任何人都可以构建一个社交媒体尝试来和现有的社交媒体公司展开竞争。这降低了在社交媒体领域创新的门槛。现有发布者可以轻而易举地加速社交产品和其主营业务的联结,使得在先进巨头公司业务基础上也可以快速的创新。这改变了现今社交媒体创业,首先要获得**10**亿用户的数据护城河的现状。 29 | 30 | 最值得一提的是, 不管是谁,如果运行节点来展示和发布自己的内容,数据都会发送到公共区块链的数据池,包括用户个人资料,帖子,粉丝等数据都会在公共区块链上。一个在ESPN上的帖子或“点赞”可以在Politico的内容中展现。一个在中国的帖子可以出现在美国的节点内容中,反之亦然。随着节点数量的增多,更多的内容返回和存储在数据池中,随之“反哺”到网络中的每个节点,以更好为用户提供更优质的内容。从某种程度来说,DeSo让小型内容发布者可以将内容发布到一个公共内容池而不用担心失去交互权。因此,我们可以实现从数据被严重保护私有化的世界向公开访问和开发的公平世界的转化。 31 | 32 | * 重要的是,这极大激励了内容发布者为这个区块链贡献数据,从而吸引到最顶级的内容创作者。毕竟,毋庸质疑,用户发布数据,相比封闭平台,一个利用区块链,在全节点即时同步内容的发布平台有无法比拟的吸引力。 33 | 34 | 我们认为,相较与现有平台,上述的所有都可以使得创作者可以前所未有地直接与其粉丝建立联系。这种关系不再是**“**硬币的两面: **“**一面**“**联系**”**,另一面是**“**获利**”**。 35 | 36 | 创作者代币已经改变了内容创作者获利的游戏方式,这还仅仅是开始。因为**DeSo**是一个基于变现的开源协议,使得在世界上的任何人都可以开始进行探索并实践新的变现方法。比如:假设某个创作“大V“想开始通过用户每月订阅方式提供优质内容而变现,他只需在互联网上建立这个功能,整个DeSo的用户群就可以立即访问相关内容。这种模式也可以适用于收件箱管理,在此,创作者可以通过转发帖子和回复粉丝信息而获得相应报酬。 与此同时,此模式也适用于其他方面,比如检测有害内容和清除垃圾信件,那么这样全世界最好的机器学习研究员就可以在无需请求许可的条件下,通过DeSo 随时随地访问完整数据,并且在DeSo上搭建相应解决方案。 从根本上说,DeSo不是一家公司,是一个全世界可以合作创作内容的协议。我们相信最终这也会激励创造者们释放出真正的潜力,促进整个社交媒体的竞争和创新。 37 | 38 | 另外,由于DeSo变现核心属性,这有利于更有效地来进行内容排序和评级和排序。 举例来说,DeSo开发者的第一个尝试,就是根据评论者的代币价值,对评论进行评级排序。令人惊讶的是,这种简单的机制已经取得了比中心化平台更有竞争力的成果。对于网红博主来说,这种DeSo独有的币价信息评级模式将有效减少垃圾信息。这还只是个开始,相象一下,当整个世界都开始在**DeSo**平台上贡献和分享内容之后,还能有什么样新的**”DeSo**信号**“**。 39 | 40 | 最后,我们认为值得一提的是**,DeSo**从第一天开始就是基于在长远发展下也能保证去中心化并实现其激励方式而设计的,有相比中心化的平台,更强的创作者奖励机制。并且因为所有数据都在公共区块链上, 节点运行者拥有所有的数据归属权,开发者永远不用担心失去对其数据和API的访问权限。 对比传统媒体公司,他们最初快速发展,建立网络效应,然而在成功后却建立数据护城河阻止了他人访问。此外,若有保留公司和CEO模式,就不是真正意义上的去中心化,这也就是为什么DeSo原始开发团队保持匿名的原因。我们不希望影响您的判断,我们希望您作为社区成员而决定平台发展方向。DeSo没有考虑股东利益高于社区利益的公司主体,只有社区—并且每个人都是因为持有DeSo和创作者代币而团结一致。 41 | 42 | 在每个人的帮助下,我们希望将**DeSo**区块链打造成一个长远的促进人类发展的积极力量,并且将竞争和创新带回互联网。 互联网最初本质上是去中心化的,但是我们正处在一个高度集中的时代,创新比以往更加艰难。经过多年的思考,我们坚信钟摆会再次甚至永远向去中心化回归,而我们现在都有机会参与其中。全世界可以通力创造新一代的应用去释放人类创造的全部潜力。 43 | 44 | @diamondhands 45 | 46 | --------------------------------------------------------------------------------