{"id":36,"date":"2022-04-29T11:43:13","date_gmt":"2022-04-29T11:43:13","guid":{"rendered":"https:\/\/edcarron.com\/?p=36"},"modified":"2022-05-31T18:06:32","modified_gmt":"2022-05-31T18:06:32","slug":"web3-scams-total-now-over-9-billion","status":"publish","type":"post","link":"https:\/\/edcarron.com\/?p=36","title":{"rendered":"Web3 Scams Total Over $9 Billion"},"content":{"rendered":"\n<h1>Web3 Scams Total Over $9 Billion<\/h1>\n\n\n\n<meta charset=\"UTF-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Document<\/title>\n  \n  \n     <style>\n      html,\n      body {\n        margin: 0;\n        height: 100%;\n        width: 100%;\n        font-family: \"Press Start 2P\" a;\n       \n      }\n\n      #root {\n        margin: 0 auto;\n        padding: 80px 20px;\n      }\n\n      svg {\n        text-align: center;\n      }\n\n      text {\n        font-family: \"Source Code Pro\";\n        font-size: 20px;\n        fill: darkgrey;\n      }\n\n      text.title {\n        font-size: 22px;\n        fill: darkgrey;\n      }\n\n      text.info {\n        fill: #5948a4;\n      }\n\n      text.chartInfo {\n        fill: #414040;\n      }\n\n      .subtitle text {\n        font-size: 18px;\n        text-decoration: underline;\n        fill: gray;\n      }\n\n      path.line {\n        fill: none;\n        stroke: #5948a4;\n        stroke-width: 3px;\n      }\n\n      path.area {\n        fill: #5948a4;\n        opacity: 0.2;\n      }\n\n      .axis path,\n      .axis line {\n        fill: none;\n        stroke: slategray;\n        shape-rendering: crispEdges;\n      }\n\n      line.x,\n      line.y,\n      circle.y {\n        stroke: #59bf51;\n      }\n    <\/style>\n    <div id=\"root\">\n      <button onclick=\"appendData()\">reload<\/button>\n    <\/div>\n\n    <script src=\"https:\/\/d3js.org\/d3.v6.min.js\"><\/script>\n    <script>\n      const margin = { top: 40, right: 80, bottom: 60, left: 120 },\n        width = 960 - margin.left - margin.right,\n        height = 280 - margin.top - margin.bottom;\n\n      const parseDate = d3.timeParse(\"%Y-%m-%d\"),\n        formatDate = d3.timeFormat(\"%b %d\"),\n        formatMonth = d3.timeFormat(\"%b %y\"),\n        formatMoney = d3.format(\"$,\");\n\n      var formatSi = d3.format(\".1s\");\n\n      function formatAbbreviation(x) {\n        var s = formatSi(x);\n        switch (s[s.length - 1]) {\n          case \"G\":\n            return s.slice(0, -1) + \"B\";\n        }\n        return s;\n      }\n\n      const x = d3.scaleTime().range([0, width]);\n      const y = d3.scaleLinear().range([height, 0]);\n\n      const area = d3\n        .area()\n        .x((d) => {\n          return x(d.date);\n        })\n        .y0(height)\n        .y1((d) => {\n          return y(d.runningTotal);\n        })\n        .curve(d3.curveLinear);\n\n      const valueline = d3\n        .line()\n        .x((d) => {\n          return x(d.date);\n        })\n        .y((d) => {\n          return y(d.runningTotal);\n        })\n        .curve(d3.curveLinear);\n\n      const svg = d3\n        .select(\"#root\")\n        .append(\"svg\")\n        .attr(\n          \"viewBox\",\n          `0 0 ${width + margin.left + margin.right} ${\n            height + margin.top + margin.bottom\n          }`\n        )\n        .append(\"g\")\n        .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n      svg\n        .append(\"g\")\n        .attr(\"class\", \"x axis\")\n        .attr(\"transform\", \"translate(0,\" + height + \")\")\n        .call(d3.axisBottom(x).tickFormat(formatMonth));\n\n      svg.append(\"g\").attr(\"class\", \"y axis\").call(d3.axisLeft(y));\n\n      svg\n        .append(\"text\")\n        .attr(\"transform\", \"rotate(-90)\")\n        .attr(\"y\", 0 - margin.left)\n        .attr(\"x\", 0 - height \/ 2)\n        .attr(\"dy\", \"1em\")\n        .style(\"text-anchor\", \"middle\")\n        .text(\"USD\");\n\n      svg\n        .append(\"a\")\n        .attr(\"xlink:href\", (d) => {\n          return \"https:\/\/web3isgoinggreat.com\";\n        })\n        .attr(\"class\", \"subtitle\")\n        .attr(\"target\", \"_blank\")\n        .append(\"text\")\n        .attr(\"x\", 0)\n        .attr(\"y\", height + 50)\n        .text(\"Source web3isgoinggreat.com\");\n\n      appendData();\n\n      function appendData() {\n        d3.selectAll(\"path.area\").remove();\n        d3.selectAll(\"path.line\").remove();\n        d3.selectAll(\".title\").remove();\n\n        d3.csv(\"\/myjson\/grift-2022-04-04-converted.csv\").then((data) => {\n          data.forEach((d) => {\n            d.date = parseDate(d.date);\n          });\n\n          x.domain(\n            d3.extent(data, (d) => {\n              return d.date;\n            })\n          );\n          y.domain([\n            55,\n            d3.max(data, (d) => {\n              return d.runningTotal;\n            }),\n          ]);\n\n          svg\n            .select(\".x.axis\")\n            .transition()\n            .duration(750)\n            .call(d3.axisBottom(x).tickFormat(formatMonth));\n          svg\n            .select(\".y.axis\")\n            .transition()\n            .duration(750)\n            .call(d3.axisLeft(y).tickFormat(formatAbbreviation));\n\n          const areaPath = svg\n            .append(\"path\")\n            .data([data])\n            .attr(\"class\", \"area\")\n            .attr(\"d\", area)\n            .attr(\"transform\", \"translate(0,300)\")\n            .transition()\n            .duration(2000)\n            .attr(\"transform\", \"translate(0,0)\");\n\n          const linePath = svg\n            .append(\"path\")\n            .data([data])\n            .attr(\"class\", \"line\")\n            .attr(\"d\", valueline);\n          const pathLength = linePath.node().getTotalLength();\n          linePath\n            .attr(\"stroke-dasharray\", pathLength)\n            .attr(\"stroke-dashoffset\", pathLength)\n            .attr(\"stroke-width\", 3)\n            .transition()\n            .duration(2000)\n            .attr(\"stroke-width\", 0)\n            .attr(\"stroke-dashoffset\", 0);\n\n          svg\n            .append(\"text\")\n            .attr(\"class\", \"title\")\n            .attr(\"x\", width \/ 2)\n            .attr(\"y\", 0 - margin.top \/ 2)\n            .attr(\"text-anchor\", \"middle\")\n            .text(\"Web3 Scams\");\n\n          const focus = svg\n            .append(\"g\")\n            .attr(\"class\", \"focus\")\n            .style(\"display\", \"none\");\n\n          focus\n            .append(\"line\")\n            .attr(\"class\", \"x\")\n            .style(\"stroke-dasharray\", \"3,3\")\n            .style(\"opacity\", 0.5)\n            .attr(\"y1\", 0)\n            .attr(\"y2\", height);\n\n          focus\n            .append(\"line\")\n            .attr(\"class\", \"y\")\n            .style(\"stroke-dasharray\", \"3,3\")\n            .style(\"opacity\", 0.5)\n            .attr(\"x1\", width)\n            .attr(\"x2\", width);\n\n          focus\n            .append(\"circle\")\n            .attr(\"class\", \"y\")\n            .style(\"fill\", \"none\")\n            .attr(\"r\", 4);\n\n          focus\n            .append(\"text\")\n            .attr(\"class\", \"y1\")\n            .attr(\"dx\", 8)\n            .attr(\"dy\", \"-1.1em\")\n            .style(\"fill\", \"#414040\");\n\n          focus\n            .append(\"text\")\n            .attr(\"class\", \"y2\")\n            .attr(\"dx\", 8)\n            .attr(\"dy\", \"1em\")\n            .style(\"fill\", \"#414040\");\n\n          focus.append(\"text\").attr(\"class\", \"info\").attr;\n\n          function mouseMove(event) {\n            const bisect = d3.bisector((d) => d.date).left,\n              x0 = x.invert(d3.pointer(event, this)[0]),\n              i = bisect(data, x0, 1),\n              d0 = data[i - 1],\n              d1 = data[i],\n              d = x0 - d0.date > d1.date - x0 ? d1 : d0;\n\n            focus\n              .select(\"circle.y\")\n              .attr(\n                \"transform\",\n                \"translate(\" + x(d.date) + \",\" + y(d.runningTotal) + \")\"\n              );\n\n            focus\n              .select(\"text.y1\")\n              .attr(\n                \"transform\",\n                \"translate(\" + x(d.date) + \",\" + y(d.runningTotal) + \")\"\n              )\n              .text(formatMoney(d.runningTotal));\n\n            focus.select(\"text.info\").text(d.info);\n\n            focus\n              .select(\"text.y2\")\n              .attr(\n                \"transform\",\n                \"translate(\" + x(d.date) + \",\" + y(d.runningTotal) + \")\"\n              )\n              .text(formatDate(d.date));\n\n            focus\n              .select(\".x\")\n              .attr(\n                \"transform\",\n                \"translate(\" + x(d.date) + \",\" + y(d.runningTotal) + \")\"\n              )\n              .attr(\"y2\", height - y(d.runningTotal));\n\n            focus\n              .select(\".y\")\n              .attr(\n                \"transform\",\n                \"translate(\" + width * -1 + \",\" + y(d.runningTotal) + \")\"\n              )\n              .attr(\"x2\", width + width);\n          }\n\n          svg\n            .append(\"rect\")\n            .attr(\"width\", width)\n            .attr(\"height\", height)\n            .style(\"fill\", \"none\")\n            .style(\"pointer-events\", \"all\")\n            .on(\"mouseover\", () => {\n              focus.style(\"display\", null);\n            })\n            .on(\"mouseout\", () => {\n              focus.style(\"display\", \"none\");\n            })\n            .on(\"touchmove mousemove\", mouseMove);\n        });\n      }\n    <\/script>\n\n\n\n<p>Web3 is the Internet\u2019s latest step forward. Starting from the static sites of Web 1.0, through to the interactive platforms of number 2, and coming into Web3\u2019s decentralized future: where all exchanges of currency and contract are mediated by blockchain technologies, that will eventually deliver us into a utopia of cypher-cyber freedom. Or at least that\u2019s how many have described it \u2013 most of whom are, coincidentally, trying to sell crypto currency.<\/p>\n\n\n\n<p>$9.6 billion has been lost to scams and hacks across the vast array of blockchain technologies that make up the Web3 market, including cryptocurrencies, non fungible tokens, and decentralised finance protocols (DeFi). This number comes from Molly White, creator of the site web3isgoinggreat.com, where she documents all of the notable nefarious Web3 activity.<\/p>\n\n\n\n<p>The most common scams are \u201crug pulls\u201d, where the developers of a project market it to create hype, get people to invest, and then run away with the money,<em> pulling the rug out<\/em> from underneath everyone involved. People who lose money in a rug pull have little to no legal recourse for getting it back, because of the inherently unregulated nature of Web3 products.<\/p>\n\n\n\n<p>Crypto Companies, like anyone, can be hacked. Last month the popular \u201cplay-to-earn\u201d blockchain game <a href=\"https:\/\/www.forbes.com\/sites\/jonathanponciano\/2022\/03\/29\/second-biggest-crypto-hack-ever-600-million-in-ethereum-stolen-from-nft-gaming-blockchain\/\">Axie Infinity lost $625m<\/a> in possibly the largest DeFi exploit of all time.<\/p>\n\n\n\n<p>To many people the appeal of Web3 is finance without the control of centralised bureaucracies and the stifling regulations that they impose. However, the victims of crypto scams are learning why many of those regulations exist.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Web3 Scams Total Over $9 Billion Document reload Web3 is the Internet\u2019s latest step forward. Starting from the static sites of Web 1.0, through to the interactive platforms of number 2, and coming into Web3\u2019s decentralized future: where all exchanges of currency and contract are mediated by blockchain technologies, that will eventually deliver us into&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/edcarron.com\/index.php?rest_route=\/wp\/v2\/posts\/36"}],"collection":[{"href":"https:\/\/edcarron.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/edcarron.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/edcarron.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/edcarron.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=36"}],"version-history":[{"count":61,"href":"https:\/\/edcarron.com\/index.php?rest_route=\/wp\/v2\/posts\/36\/revisions"}],"predecessor-version":[{"id":173,"href":"https:\/\/edcarron.com\/index.php?rest_route=\/wp\/v2\/posts\/36\/revisions\/173"}],"wp:attachment":[{"href":"https:\/\/edcarron.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=36"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/edcarron.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=36"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/edcarron.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=36"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}