2021-08-02 14:46:40 +00:00
import React , {
useState ,
2021-10-13 16:56:14 +00:00
useContext ,
2021-08-05 15:01:02 +00:00
Suspense ,
useEffect ,
useLayoutEffect ,
2021-08-02 14:46:40 +00:00
} from "react" ;
2021-07-30 11:25:17 +00:00
import {
2021-08-05 15:01:02 +00:00
Fade ,
2021-07-30 11:25:17 +00:00
Flex ,
Heading ,
Box ,
Center ,
chakra ,
Stack ,
2021-08-02 11:42:31 +00:00
Link ,
useMediaQuery ,
2021-08-05 15:01:02 +00:00
Grid ,
2021-08-19 12:48:17 +00:00
Text ,
2021-08-05 15:01:02 +00:00
GridItem ,
2021-10-13 15:23:49 +00:00
SimpleGrid ,
Image as ChakraImage ,
2021-07-30 11:25:17 +00:00
} from "@chakra-ui/react" ;
2021-08-05 15:01:02 +00:00
import dynamic from "next/dynamic" ;
import useUser from "../src/core/hooks/useUser" ;
import useModals from "../src/core/hooks/useModals" ;
import useRouter from "../src/core/hooks/useRouter" ;
2021-08-30 17:17:31 +00:00
import {
MIXPANEL _PROPS ,
MIXPANEL _EVENTS ,
} from "../src/core/providers/AnalyticsProvider/constants" ;
2021-11-04 16:15:42 +00:00
import { AWS _ASSETS _PATH , DEFAULT _METATAGS } from "../src/core/constants" ;
2021-08-30 17:17:31 +00:00
import mixpanel from "mixpanel-browser" ;
2021-10-13 16:56:14 +00:00
import UIContext from "../src/core/providers/UIProvider/context" ;
2021-11-01 13:55:29 +00:00
import TrustedBadge from "../src/components/TrustedBadge" ;
import Slider from "react-slick" ;
2021-11-02 14:23:11 +00:00
import SchematicPlayground from "../src/components/SchematicPlayground" ;
2021-11-01 13:55:29 +00:00
import { v4 as uuidv4 } from "uuid" ;
2021-11-08 11:58:29 +00:00
import RouteButton from "../src/components/RouteButton" ;
2021-10-13 16:56:14 +00:00
const SplitWithImage = dynamic (
( ) => import ( "../src/components/SplitWithImage" ) ,
{
ssr : false ,
}
) ;
2021-11-08 11:58:29 +00:00
const FaGithubSquare = dynamic ( ( ) =>
import ( "react-icons/fa" ) . then ( ( mod ) => mod . FaGithubSquare )
) ;
2021-10-13 16:56:14 +00:00
const GiSuspicious = dynamic ( ( ) =>
import ( "react-icons/gi" ) . then ( ( mod ) => mod . GiSuspicious )
) ;
2021-10-13 15:23:49 +00:00
2021-10-13 16:56:14 +00:00
const GiHook = dynamic ( ( ) =>
import ( "react-icons/gi" ) . then ( ( mod ) => mod . GiHook )
) ;
2021-10-13 15:23:49 +00:00
2021-10-13 16:56:14 +00:00
const IoTelescopeSharp = dynamic ( ( ) =>
import ( "react-icons/io5" ) . then ( ( mod ) => mod . IoTelescopeSharp )
) ;
2021-10-13 15:23:49 +00:00
2021-10-13 16:56:14 +00:00
const AiFillApi = dynamic ( ( ) =>
import ( "react-icons/ai" ) . then ( ( mod ) => mod . AiFillApi )
) ;
2021-10-13 15:23:49 +00:00
2021-10-13 16:56:14 +00:00
const BiTransfer = dynamic ( ( ) =>
import ( "react-icons/bi" ) . then ( ( mod ) => mod . BiTransfer )
) ;
2021-10-13 15:23:49 +00:00
2021-10-13 16:56:14 +00:00
const RiDashboardFill = dynamic ( ( ) =>
import ( "react-icons/ri" ) . then ( ( mod ) => mod . RiDashboardFill )
) ;
const FaFileContract = dynamic ( ( ) =>
import ( "react-icons/fa" ) . then ( ( mod ) => mod . FaFileContract )
) ;
const GiMeshBall = dynamic ( ( ) =>
import ( "react-icons/gi" ) . then ( ( mod ) => mod . GiMeshBall )
) ;
2021-10-13 15:23:49 +00:00
2021-10-13 16:56:14 +00:00
const GiLogicGateXor = dynamic ( ( ) =>
import ( "react-icons/gi" ) . then ( ( mod ) => mod . GiLogicGateXor )
) ;
2021-10-13 15:23:49 +00:00
2021-11-04 15:39:17 +00:00
const VscOrganization = dynamic ( ( ) =>
import ( "react-icons/vsc" ) . then ( ( mod ) => mod . VscOrganization )
) ;
const FaVoteYea = dynamic ( ( ) =>
import ( "react-icons/fa" ) . then ( ( mod ) => mod . FaVoteYea )
) ;
2021-11-04 16:11:09 +00:00
const RiOrganizationChart = dynamic ( ( ) =>
import ( "react-icons/ri" ) . then ( ( mod ) => mod . RiOrganizationChart )
) ;
2021-11-04 15:39:17 +00:00
const FiActivity = dynamic ( ( ) =>
import ( "react-icons/fi" ) . then ( ( mod ) => mod . FiActivity )
) ;
const RiMapPinUserLine = dynamic ( ( ) =>
import ( "react-icons/ri" ) . then ( ( mod ) => mod . RiMapPinUserLine )
) ;
2021-11-04 16:11:09 +00:00
const AiOutlinePieChart = dynamic ( ( ) =>
import ( "react-icons/ai" ) . then ( ( mod ) => mod . AiOutlinePieChart )
) ;
2021-11-04 15:39:17 +00:00
const BiBot = dynamic ( ( ) => import ( "react-icons/bi" ) . then ( ( mod ) => mod . BiBot ) ) ;
2021-07-30 11:25:17 +00:00
const HEADING _PROPS = {
fontWeight : "700" ,
fontSize : [ "4xl" , "5xl" , "4xl" , "5xl" , "6xl" , "7xl" ] ,
} ;
const assets = {
2021-08-24 12:28:17 +00:00
background720 : ` ${ AWS _ASSETS _PATH } /background720.png ` ,
background1920 : ` ${ AWS _ASSETS _PATH } /background720.png ` ,
background2880 : ` ${ AWS _ASSETS _PATH } /background720.png ` ,
background3840 : ` ${ AWS _ASSETS _PATH } /background720.png ` ,
minedTransactions : ` ${ AWS _ASSETS _PATH } /Ethereum+mined+transactions.png ` ,
pendingTransactions : ` ${ AWS _ASSETS _PATH } /Ethereum+pending+transactions.png ` ,
priceInformation : ` ${ AWS _ASSETS _PATH } /Price+information.png ` ,
socialMediaPosts : ` ${ AWS _ASSETS _PATH } /Social+media+posts.png ` ,
cryptoTraders : ` ${ AWS _ASSETS _PATH } /crypto+traders.png ` ,
2021-10-13 15:23:49 +00:00
smartDevelopers : ` ${ AWS _ASSETS _PATH } /smart+contract+developers.png ` ,
2021-11-01 13:55:29 +00:00
cointelegraph : ` ${ AWS _ASSETS _PATH } /featured_by/Cointelegraph_logo.png ` ,
cryptoinsiders : ` ${ AWS _ASSETS _PATH } /featured_by/crypto_insiders.png ` ,
cryptoslate : ` ${ AWS _ASSETS _PATH } /featured_by/cs-media-logo-light.png ` ,
bitcoinLogo : ` ${ AWS _ASSETS _PATH } /bitcoin.png ` ,
ethereumBlackLogo : ` ${ AWS _ASSETS _PATH } /eth-diamond-black.png ` ,
ethereumRainbowLogo : ` ${ AWS _ASSETS _PATH } /eth-diamond-rainbow.png ` ,
maticLogo : ` ${ AWS _ASSETS _PATH } /matic-token-inverted-icon.png ` ,
2021-11-08 11:58:29 +00:00
erc20 : ` ${ AWS _ASSETS _PATH } /ERC 20.png ` ,
DAO : ` ${ AWS _ASSETS _PATH } /DAO .png ` ,
NFT : ` ${ AWS _ASSETS _PATH } /NFT.png ` ,
2021-07-30 11:25:17 +00:00
} ;
2021-11-01 13:55:29 +00:00
const carousel _content = [
{ title : "Bitcoin coming soon!" , img : assets [ "bitcoinLogo" ] } ,
{ title : "Ethereum" , img : assets [ "ethereumBlackLogo" ] } ,
{ title : "Ethereum transaction pool" , img : assets [ "ethereumRainbowLogo" ] } ,
{ title : "Polygon coming soon!" , img : assets [ "maticLogo" ] } ,
2021-11-03 14:11:13 +00:00
{ title : "Bitcoin coming soon!" , img : assets [ "bitcoinLogo" ] } ,
{ title : "Ethereum" , img : assets [ "ethereumBlackLogo" ] } ,
{ title : "Ethereum transaction pool" , img : assets [ "ethereumRainbowLogo" ] } ,
{ title : "Polygon coming soon!" , img : assets [ "maticLogo" ] } ,
2021-11-01 13:55:29 +00:00
] ;
2021-07-30 11:25:17 +00:00
const Homepage = ( ) => {
2021-10-13 16:56:14 +00:00
const ui = useContext ( UIContext ) ;
2021-08-02 11:42:31 +00:00
const [ background , setBackground ] = useState ( "background720" ) ;
const [ backgroundLoaded720 , setBackgroundLoaded720 ] = useState ( false ) ;
const [ backgroundLoaded1920 , setBackgroundLoaded1920 ] = useState ( false ) ;
const [ backgroundLoaded2880 , setBackgroundLoaded2880 ] = useState ( false ) ;
const [ backgroundLoaded3840 , setBackgroundLoaded3840 ] = useState ( false ) ;
2021-07-30 11:25:17 +00:00
2021-11-01 13:55:29 +00:00
const [ imageIndex , setImageIndex ] = useState ( 0 ) ;
2021-08-02 11:42:31 +00:00
const router = useRouter ( ) ;
2021-07-30 11:25:17 +00:00
const { isInit } = useUser ( ) ;
const { toggleModal } = useModals ( ) ;
2021-08-02 11:42:31 +00:00
const [
isLargerThan720px ,
isLargerThan1920px ,
isLargerThan2880px ,
isLargerThan3840px ,
] = useMediaQuery ( [
"(min-width: 720px)" ,
"(min-width: 1920px)" ,
"(min-width: 2880px)" ,
"(min-width: 3840px)" ,
] ) ;
2021-07-30 11:25:17 +00:00
2021-08-02 11:42:31 +00:00
useEffect ( ( ) => {
2021-08-24 12:28:17 +00:00
assets [ "background720" ] = ` ${ AWS _ASSETS _PATH } /background720.png ` ;
assets [ "background1920" ] = ` ${ AWS _ASSETS _PATH } /background1920.png ` ;
assets [ "background2880" ] = ` ${ AWS _ASSETS _PATH } /background2880.png ` ;
assets [ "background3840" ] = ` ${ AWS _ASSETS _PATH } /background3840.png ` ;
2021-08-02 11:42:31 +00:00
} , [ ] ) ;
2021-07-30 11:25:17 +00:00
2021-08-02 14:46:40 +00:00
useLayoutEffect ( ( ) => {
if ( backgroundLoaded3840 ) {
2021-08-02 11:42:31 +00:00
setBackground ( "background3840" ) ;
2021-08-02 14:46:40 +00:00
} else if ( backgroundLoaded2880 ) {
2021-08-02 11:42:31 +00:00
setBackground ( "background2880" ) ;
2021-08-02 14:46:40 +00:00
} else if ( backgroundLoaded1920 ) {
2021-08-02 11:42:31 +00:00
setBackground ( "background1920" ) ;
} else {
setBackground ( "background720" ) ;
2021-07-30 11:25:17 +00:00
}
2021-08-02 11:42:31 +00:00
} , [
isLargerThan720px ,
isLargerThan1920px ,
isLargerThan2880px ,
isLargerThan3840px ,
backgroundLoaded720 ,
backgroundLoaded1920 ,
backgroundLoaded2880 ,
backgroundLoaded3840 ,
] ) ;
2021-07-30 11:25:17 +00:00
useEffect ( ( ) => {
if (
router . nextRouter . asPath !== "/" &&
router . nextRouter . asPath . slice ( 0 , 2 ) !== "/?" &&
2021-08-05 09:49:18 +00:00
router . nextRouter . asPath . slice ( 0 , 2 ) !== "/#" &&
router . nextRouter . asPath . slice ( 0 , 11 ) !== "/index.html"
2021-07-30 11:25:17 +00:00
) {
2021-08-05 10:03:42 +00:00
console . warn ( "redirect attempt.." ) ;
if ( typeof window !== "undefined" ) {
2021-08-05 11:15:57 +00:00
console . warn ( "window present:" , window . location . pathname ) ;
router . replace ( router . nextRouter . asPath , router . nextRouter . asPath , {
shallow : false ,
} ) ;
2021-08-05 10:03:42 +00:00
}
2021-07-30 11:25:17 +00:00
}
} , [ isInit , router ] ) ;
2021-08-02 14:46:40 +00:00
useLayoutEffect ( ( ) => {
2021-08-02 11:42:31 +00:00
const imageLoader720 = new Image ( ) ;
2021-08-24 12:28:17 +00:00
imageLoader720 . src = ` ${ AWS _ASSETS _PATH } /background720.png ` ;
2021-08-02 11:42:31 +00:00
imageLoader720 . onload = ( ) => {
setBackgroundLoaded720 ( true ) ;
} ;
2021-08-02 14:46:40 +00:00
} , [ ] ) ;
2021-08-02 11:42:31 +00:00
2021-08-02 14:46:40 +00:00
useLayoutEffect ( ( ) => {
2021-08-02 11:42:31 +00:00
const imageLoader1920 = new Image ( ) ;
2021-08-24 12:28:17 +00:00
imageLoader1920 . src = ` ${ AWS _ASSETS _PATH } /background1920.png ` ;
2021-08-02 11:42:31 +00:00
imageLoader1920 . onload = ( ) => {
setBackgroundLoaded1920 ( true ) ;
} ;
2021-08-02 14:46:40 +00:00
} , [ ] ) ;
2021-08-02 11:42:31 +00:00
2021-08-02 14:46:40 +00:00
useLayoutEffect ( ( ) => {
2021-08-02 11:42:31 +00:00
const imageLoader2880 = new Image ( ) ;
2021-08-24 12:28:17 +00:00
imageLoader2880 . src = ` ${ AWS _ASSETS _PATH } /background2880.png ` ;
2021-08-02 11:42:31 +00:00
imageLoader2880 . onload = ( ) => {
setBackgroundLoaded2880 ( true ) ;
} ;
2021-08-02 14:46:40 +00:00
} , [ ] ) ;
2021-08-02 11:42:31 +00:00
2021-08-02 14:46:40 +00:00
useLayoutEffect ( ( ) => {
2021-08-02 11:42:31 +00:00
const imageLoader3840 = new Image ( ) ;
2021-08-24 12:28:17 +00:00
imageLoader3840 . src = ` ${ AWS _ASSETS _PATH } /background3840.png ` ;
2021-08-02 11:42:31 +00:00
imageLoader3840 . onload = ( ) => {
setBackgroundLoaded3840 ( true ) ;
} ;
} , [ ] ) ;
2021-11-01 13:55:29 +00:00
const settings = {
2021-11-03 14:11:13 +00:00
infinite : true ,
2021-11-01 13:55:29 +00:00
lazyLoad : true ,
2021-11-03 14:11:13 +00:00
speed : 2000 ,
2021-11-01 13:55:29 +00:00
autoplay : true ,
2021-11-03 14:11:13 +00:00
autoplaySpeed : 0 ,
2021-11-01 13:55:29 +00:00
// cssEase: "linear",
cssEase : "cubic-bezier(0.165, 0.840, 0.440, 1.000)" ,
// cssEase: "ease-in",
2021-11-03 14:11:13 +00:00
slidesToScroll : 1 ,
slidesToShow : ui . isMobileView ? 3 : 5 ,
centerMode : true ,
2021-11-01 13:55:29 +00:00
centerPadding : 0 ,
// nextArrow: "",
// prevArrow: "",
beforeChange : ( current , next ) => setImageIndex ( next ) ,
} ;
2021-07-30 11:25:17 +00:00
return (
2021-08-06 12:24:18 +00:00
< Suspense fallback = "" >
< Fade in >
< Box
width = "100%"
flexDirection = "column"
sx = { { scrollBehavior : "smooth" } }
bgSize = "cover"
2021-07-30 11:25:17 +00:00
>
2021-08-06 12:24:18 +00:00
< Flex
direction = "column"
h = "auto"
position = "relative"
w = "100%"
overflow = "initial"
pt = { 0 }
2021-08-02 11:42:31 +00:00
>
2021-08-06 12:24:18 +00:00
< Suspense fallback = { "" } > < / S u s p e n s e >
< Grid
templateColumns = "repeat(12,1fr)"
2021-08-02 11:42:31 +00:00
mt = { 0 }
2021-08-06 12:24:18 +00:00
border = "none"
boxSizing = "content-box"
2021-08-02 11:42:31 +00:00
>
2021-08-06 12:24:18 +00:00
< GridItem
mt = { 0 }
px = "0"
colSpan = "12"
pb = { [ 1 , 2 , null , 8 ] }
minH = "100vh"
>
< chakra . header boxSize = "full" minH = "100vh" >
< Box
bgPos = "bottom"
bgColor = "transparent"
backgroundImage = { ` url( ${ assets [ ` ${ background } ` ] } ) ` }
bgSize = "cover"
boxSize = "full"
minH = "100vh"
>
< Flex align = "center" justify = "center" boxSize = "full" >
< Stack
textAlign = "center"
alignItems = "center"
spacing = { 6 }
2021-08-19 12:48:17 +00:00
maxW = { [ "1620px" , null , null , null , "1620px" , "2222px" ] }
2021-11-01 13:55:29 +00:00
w = "100%"
2021-08-06 12:24:18 +00:00
px = "7%"
h = "100%"
pt = { [ "10vh" , null , "20vh" ] }
2021-07-30 11:25:17 +00:00
>
2021-08-19 12:48:17 +00:00
< Heading
fontSize = { [ "lg" , "4xl" , "5xl" , "5xl" , "5xl" , "6xl" ] }
fontWeight = "semibold"
color = "white"
>
2021-10-07 19:58:38 +00:00
Open source blockchain analytics
2021-08-06 12:24:18 +00:00
< / H e a d i n g >
< chakra . span
my = { 12 }
2021-08-19 12:48:17 +00:00
fontSize = { [ "md" , "2xl" , "3xl" , "3xl" , "3xl" , "4xl" ] }
2021-08-06 12:24:18 +00:00
display = "inline-block"
2021-09-21 18:37:48 +00:00
color = "blue.200"
2021-08-06 12:24:18 +00:00
>
2021-10-07 19:58:38 +00:00
Product analytics for Web3 . Moonstream helps you
understand exactly how people are using your smart
contracts .
2021-08-06 12:24:18 +00:00
< / c h a k r a . s p a n >
2021-11-03 14:11:13 +00:00
< Box
w = "100vw"
minH = "200px"
// px="7%"
py = { 0 }
overflowX = "hidden"
overflowY = "visible"
>
2021-11-01 13:55:29 +00:00
< Slider
{ ... settings }
// adaptiveHeight={true}
arrows = { false }
autoplay = { true }
autoplaySpeed = { 100 }
>
{ carousel _content . map ( ( content _item , idx ) => (
< Box
2021-11-03 14:11:13 +00:00
pt = "80px"
h = "auto"
2021-11-01 13:55:29 +00:00
w = "150px"
maxW = "150px"
// size="150px"
key = { uuidv4 ( ) }
className = {
idx === imageIndex
? "slide activeSlide"
: "slide"
}
// bgColor="blue.900"
2021-11-02 14:23:11 +00:00
// borderRadius="lg"
// boxShadow="lg"
2021-11-01 13:55:29 +00:00
>
< ChakraImage
fit = "contain"
2021-11-03 18:16:30 +00:00
boxSize = { [ "64px" , "96px" , "130px" , null ] }
2021-11-01 13:55:29 +00:00
src = { content _item . img }
/ >
2021-11-03 18:16:30 +00:00
< Text
py = { 2 }
color = "blue.300"
fontSize = { [ "sm" , "md" , null ] }
>
{ content _item . title }
< / T e x t >
2021-11-01 13:55:29 +00:00
< / B o x >
) ) }
< / S l i d e r >
< / B o x >
2021-08-06 12:24:18 +00:00
< / S t a c k >
< / F l e x >
< / B o x >
< / c h a k r a . h e a d e r >
< / G r i d I t e m >
2021-07-30 11:25:17 +00:00
2021-10-13 16:56:14 +00:00
< GridItem px = "7%" colSpan = "12" pt = { 0 } minH = "100vh" >
2021-08-06 12:24:18 +00:00
< Heading
{ ... HEADING _PROPS }
textAlign = "center"
2021-11-08 13:43:51 +00:00
mt = { [ 24 , 32 , 48 ] }
2021-10-07 19:58:38 +00:00
pb = { [ 12 , 12 , 12 , null , 24 ] }
2021-08-06 12:24:18 +00:00
>
2021-10-07 19:58:38 +00:00
See how your smart contracts are being used from :
2021-08-06 12:24:18 +00:00
< / H e a d i n g >
< SimpleGrid columns = { [ 1 , 2 , 2 , 4 , null , 4 ] } >
< Stack spacing = { 1 } px = { 1 } alignItems = "center" >
< ChakraImage
boxSize = { [ "220px" , "220px" , "xs" , null , "xs" ] }
objectFit = "contain"
src = { assets [ "minedTransactions" ] }
alt = "mined transactions"
/ >
< Heading textAlign = "center " >
Ethereum mined transactions
< / H e a d i n g >
< / S t a c k >
< Stack spacing = { 1 } px = { 1 } alignItems = "center" >
< ChakraImage
boxSize = { [ "220px" , "220px" , "xs" , null , "xs" ] }
objectFit = "contain"
src = { assets [ "pendingTransactions" ] }
alt = "mined transactions"
/ >
< Heading textAlign = "center " >
Ethereum pending transactions
< / H e a d i n g >
< / S t a c k >
< Stack spacing = { 1 } px = { 1 } alignItems = "center" >
< ChakraImage
boxSize = { [ "220px" , "220px" , "xs" , null , "xs" ] }
objectFit = "contain"
src = { assets [ "priceInformation" ] }
alt = "mined transactions"
/ >
< Heading textAlign = "center " > Centralized exchanges < / H e a d i n g >
< / S t a c k >
< Stack spacing = { 1 } px = { 1 } alignItems = "center" >
< ChakraImage
boxSize = { [ "220px" , "220px" , "xs" , null , "xs" ] }
objectFit = "contain"
src = { assets [ "socialMediaPosts" ] }
alt = "mined transactions"
/ >
< Heading textAlign = "center " > Social media posts < / H e a d i n g >
< / S t a c k >
< / S i m p l e G r i d >
2021-10-13 15:23:49 +00:00
< Center >
2021-11-02 14:23:11 +00:00
< Heading
2021-11-08 13:33:22 +00:00
pt = { [ "32px" , "160px" , null ] }
2021-11-02 14:23:11 +00:00
pb = { [ "12px" , "60px" , null ] }
2021-11-08 13:33:22 +00:00
fontSize = { [ "18px" , "32px" , null ] }
textAlign = "center"
2021-11-02 14:23:11 +00:00
>
2021-11-03 18:16:30 +00:00
Your game changer in blockchain analytics
2021-07-30 11:25:17 +00:00
< / H e a d i n g >
2021-08-06 12:24:18 +00:00
< / C e n t e r >
< Flex
w = "100%"
direction = { [ "column" , "row" , "column" , null , "column" ] }
flexWrap = { [ "nowrap" , "nowrap" , "nowrap" , null , "nowrap" ] }
2021-10-13 15:23:49 +00:00
pb = "32px"
2021-11-02 14:23:11 +00:00
placeContent = "center"
2021-08-06 12:24:18 +00:00
>
2021-11-02 14:23:11 +00:00
< SchematicPlayground / >
2021-10-13 15:23:49 +00:00
< / F l e x >
2021-08-06 12:24:18 +00:00
< / G r i d I t e m >
2021-11-02 14:23:11 +00:00
2021-11-01 13:55:29 +00:00
< GridItem
px = "7%"
colSpan = "12"
pt = "66px"
bgColor = "blue.50"
pb = { [ "20px" , "30px" , "92px" , null , "92px" , "196px" ] }
>
< Heading { ... HEADING _PROPS } textAlign = "center" pb = { 14 } pt = { 0 } >
Featured by { " " }
< / H e a d i n g >
< Flex wrap = "wrap" direction = "row" justifyContent = "center" >
< Suspense fallback = { "" } >
< TrustedBadge
name = "cointelegraph"
caseURL = ""
ImgURL = { assets [ "cointelegraph" ] }
/ >
< TrustedBadge
name = "CryptoInsiders"
ImgURL = { assets [ "cryptoinsiders" ] }
/ >
< TrustedBadge
name = "cryptoslate"
ImgURL = { assets [ "cryptoslate" ] }
/ >
< / S u s p e n s e >
< / F l e x >
< / G r i d I t e m >
2021-10-13 16:56:14 +00:00
< GridItem
2021-08-06 12:24:18 +00:00
px = "7%"
colSpan = "12"
2021-11-08 13:43:51 +00:00
pt = { [ "2rem" , "2rem" , "5.125rem" , null , "5.125rem" ] }
2021-08-06 12:24:18 +00:00
pb = { [ "0" , "66px" , null , "66px" ] }
2021-10-13 15:23:49 +00:00
id = "txpool"
2021-08-06 12:24:18 +00:00
minH = { ui . isMobileView ? "100vh" : null }
2021-07-30 11:25:17 +00:00
>
2021-08-06 12:24:18 +00:00
< SplitWithImage
cta = { {
2021-11-03 14:11:13 +00:00
label : "Want to find out more?" ,
2021-08-02 11:42:31 +00:00
onClick : ( ) => {
2021-08-30 17:17:31 +00:00
mixpanel . get _distinct _id ( ) &&
mixpanel . track ( ` ${ MIXPANEL _EVENTS . BUTTON _CLICKED } ` , {
2021-10-13 15:23:49 +00:00
[ ` ${ MIXPANEL _PROPS . BUTTON _NAME } ` ] : ` Early access CTA: developer txpool button ` ,
2021-08-30 17:17:31 +00:00
} ) ;
2021-10-13 15:23:49 +00:00
toggleModal ( "hubspot-developer" ) ;
2021-08-02 11:42:31 +00:00
} ,
2021-07-30 11:25:17 +00:00
} }
2021-08-06 12:24:18 +00:00
elementName = { "element1" }
2021-09-21 18:37:48 +00:00
colorScheme = "green"
2021-11-04 15:39:17 +00:00
badge = { ` NFTs ` }
title = { ` Custom analytics for NFTs ` }
body = { ` Moonstream automatically understands smart contracts. Create your own custom dashboards. Doesn’ t matter what the custom behavior is, you can track it. ` }
2021-08-06 12:24:18 +00:00
bullets = { [
{
2021-11-04 15:39:17 +00:00
text : ` Who owns your NFTs? ` ,
2021-11-04 16:11:09 +00:00
icon : AiOutlinePieChart ,
2021-11-04 15:39:17 +00:00
color : "green.50" ,
bgColor : "green.900" ,
} ,
{
text : ` Who is selling your NFTs? ` ,
2021-08-06 12:24:18 +00:00
icon : FaFileContract ,
2021-09-21 18:37:48 +00:00
color : "green.50" ,
bgColor : "green.900" ,
2021-08-06 12:24:18 +00:00
} ,
{
2021-11-04 15:39:17 +00:00
text : ` How much are your NFTs being sold for on OpenSea, Nifty Gateway, Rarible? ` ,
2021-08-06 12:24:18 +00:00
icon : RiDashboardFill ,
2021-09-21 18:37:48 +00:00
color : "green.50" ,
bgColor : "green.900" ,
2021-08-06 12:24:18 +00:00
} ,
{
2021-11-04 15:39:17 +00:00
text : ` Who is using the custom features of your NFTs? ` ,
2021-08-06 12:24:18 +00:00
icon : GiMeshBall ,
2021-09-21 18:37:48 +00:00
color : "green.50" ,
bgColor : "green.900" ,
2021-08-06 12:24:18 +00:00
} ,
2021-11-04 15:39:17 +00:00
{
text : ` How are they using them? ` ,
icon : RiMapPinUserLine ,
color : "green.50" ,
bgColor : "green.900" ,
} ,
2021-08-06 12:24:18 +00:00
] }
2021-11-08 11:58:29 +00:00
imgURL = { assets [ "NFT" ] }
2021-08-06 12:24:18 +00:00
/ >
2021-10-13 15:23:49 +00:00
< / G r i d I t e m >
< GridItem
2021-08-06 12:24:18 +00:00
px = "7%"
colSpan = "12"
2021-11-08 13:43:51 +00:00
pt = { [ "2rem" , "2rem" , "5.125rem" , null , "5.125rem" ] }
2021-08-06 12:24:18 +00:00
pb = { [ "0" , "66px" , null , "66px" ] }
2021-10-13 15:23:49 +00:00
id = "exchanges"
2021-08-06 12:24:18 +00:00
minH = { ui . isMobileView ? "100vh" : null }
>
< SplitWithImage
cta = { {
2021-11-03 14:11:13 +00:00
label : "Want to find out more?" ,
2021-08-02 11:42:31 +00:00
onClick : ( ) => {
2021-08-30 17:17:31 +00:00
mixpanel . get _distinct _id ( ) &&
mixpanel . track ( ` ${ MIXPANEL _EVENTS . BUTTON _CLICKED } ` , {
2021-10-13 15:23:49 +00:00
[ ` ${ MIXPANEL _PROPS . BUTTON _NAME } ` ] : ` Early access CTA: developer exchanges button ` ,
2021-08-30 17:17:31 +00:00
} ) ;
2021-10-13 15:23:49 +00:00
toggleModal ( "hubspot-developer" ) ;
2021-08-02 11:42:31 +00:00
} ,
2021-07-30 11:25:17 +00:00
} }
2021-08-06 12:24:18 +00:00
elementName = { "element2" }
mirror = { true }
2021-09-21 18:37:48 +00:00
colorScheme = "orange"
2021-11-04 15:39:17 +00:00
badge = { ` ERC20 ` }
title = { ` Feel the pulse of token activity ` }
body = { ` Visualize market activity with Moonstream dashboards. Monitor token activity on the blockchain and in the transaction pool. ` }
2021-08-06 12:24:18 +00:00
bullets = { [
{
2021-11-04 15:39:17 +00:00
text : ` Who owns your tokens? ` ,
icon : GiSuspicious ,
color : "orange.50" ,
bgColor : "orange.900" ,
} ,
{
text : ` What is your weekly, daily, or hourly transaction volume? ` ,
2021-08-06 12:24:18 +00:00
icon : AiFillApi ,
2021-09-21 18:37:48 +00:00
color : "orange.50" ,
bgColor : "orange.900" ,
2021-08-06 12:24:18 +00:00
} ,
{
2021-11-04 15:39:17 +00:00
text : ` Which exchanges is your token trending on? ` ,
icon : IoTelescopeSharp ,
2021-09-21 18:37:48 +00:00
color : "orange.50" ,
bgColor : "orange.900" ,
2021-08-06 12:24:18 +00:00
} ,
{
2021-11-04 15:39:17 +00:00
text : ` Which other tokens is your token being traded for? ` ,
2021-08-06 12:24:18 +00:00
icon : BiTransfer ,
2021-09-21 18:37:48 +00:00
color : "orange.50" ,
bgColor : "orange.900" ,
2021-08-06 12:24:18 +00:00
} ,
2021-11-04 15:39:17 +00:00
{
text : ` How many people are holding your token versus actively using it?
` ,
icon : GiLogicGateXor ,
color : "orange.50" ,
bgColor : "orange.900" ,
} ,
2021-08-06 12:24:18 +00:00
] }
2021-11-08 11:58:29 +00:00
imgURL = { assets [ "erc20" ] }
2021-08-06 12:24:18 +00:00
/ >
2021-10-13 15:23:49 +00:00
< / G r i d I t e m >
2021-08-06 12:24:18 +00:00
< GridItem
px = "7%"
colSpan = "12"
2021-11-08 13:43:51 +00:00
pt = { [ "2rem" , "2rem" , "5.125rem" , null , "5.125rem" ] }
2021-08-06 12:24:18 +00:00
pb = { [ "0" , "66px" , null , "66px" ] }
id = "smartDeveloper"
minH = { ui . isMobileView ? "100vh" : null }
>
< SplitWithImage
cta = { {
2021-10-07 19:58:38 +00:00
label : "Want to find out more?" ,
2021-08-02 11:42:31 +00:00
onClick : ( ) => {
2021-08-30 17:17:31 +00:00
mixpanel . get _distinct _id ( ) &&
mixpanel . track ( ` ${ MIXPANEL _EVENTS . BUTTON _CLICKED } ` , {
2021-10-13 15:23:49 +00:00
[ ` ${ MIXPANEL _PROPS . BUTTON _NAME } ` ] : ` Early access CTA: developer smartDeveloper button ` ,
2021-08-30 17:17:31 +00:00
} ) ;
2021-08-06 12:24:18 +00:00
toggleModal ( "hubspot-developer" ) ;
2021-08-02 11:42:31 +00:00
} ,
2021-07-30 11:25:17 +00:00
} }
2021-08-06 12:24:18 +00:00
elementName = { "element3" }
2021-09-21 18:37:48 +00:00
colorScheme = "blue"
2021-11-04 15:39:17 +00:00
title = { ` All the data you need to make a market ` }
badge = { ` DEXs ` }
body = { ` Monitor the performance of your DEX live from the blockchain and from the transaction pool. Build dashboards that show you DEX activity monthly, weekly, daily, hourly, or by the minute. ` }
2021-08-06 12:24:18 +00:00
bullets = { [
{
2021-11-04 15:39:17 +00:00
text : ` Who is providing liquidity on your DEX? ` ,
icon : GiSuspicious ,
color : "blue.50" ,
bgColor : "blue.900" ,
} ,
{
text : ` How much liquidity for each token pair? ` ,
2021-10-13 16:56:14 +00:00
icon : GiMeshBall ,
2021-09-21 18:37:48 +00:00
color : "blue.50" ,
bgColor : "blue.900" ,
2021-08-06 12:24:18 +00:00
} ,
{
2021-11-04 15:39:17 +00:00
text : ` Bot vs. human activity on your exchange ` ,
icon : BiBot ,
2021-09-21 18:37:48 +00:00
color : "blue.50" ,
bgColor : "blue.900" ,
2021-08-06 12:24:18 +00:00
} ,
{
2021-11-04 15:39:17 +00:00
text : ` How large is your transaction pool backlog? ` ,
2021-08-06 12:24:18 +00:00
icon : GiHook ,
2021-09-21 18:37:48 +00:00
color : "blue.50" ,
bgColor : "blue.900" ,
2021-08-06 12:24:18 +00:00
} ,
] }
2021-11-08 11:58:29 +00:00
imgURL = { assets [ "cryptoTraders" ] }
2021-07-30 11:25:17 +00:00
/ >
2021-08-06 12:24:18 +00:00
< / G r i d I t e m >
2021-10-13 15:23:49 +00:00
< GridItem
px = "7%"
colSpan = "12"
2021-11-08 13:43:51 +00:00
pt = { [ "2rem" , "2rem" , "5.125rem" , null , "5.125rem" ] }
2021-10-13 15:23:49 +00:00
pb = { [ "0" , "66px" , null , "66px" ] }
id = "analytics"
minH = { ui . isMobileView ? "100vh" : null }
>
< SplitWithImage
mirror
cta = { {
label : "Want to find out more?" ,
onClick : ( ) => {
mixpanel . get _distinct _id ( ) &&
mixpanel . track ( ` ${ MIXPANEL _EVENTS . BUTTON _CLICKED } ` , {
[ ` ${ MIXPANEL _PROPS . BUTTON _NAME } ` ] : ` Early access CTA: developer analytics button ` ,
} ) ;
toggleModal ( "hubspot-developer" ) ;
} ,
} }
elementName = { "element3" }
colorScheme = "red"
2021-11-04 15:39:17 +00:00
badge = { ` DAOs ` }
title = { ` What really matters is community ` }
body = { ` Gain insight into your community. Build community dashboards to make participation more open. Monitor your DAO ecosystem. ` }
2021-10-13 15:23:49 +00:00
bullets = { [
{
2021-11-04 15:39:17 +00:00
text : ` Who are your community members? ` ,
icon : VscOrganization ,
2021-10-13 15:23:49 +00:00
color : "red.50" ,
bgColor : "red.900" ,
} ,
{
2021-11-04 15:39:17 +00:00
text : ` Who is actively participating? ` ,
2021-10-13 15:23:49 +00:00
icon : GiSuspicious ,
color : "red.50" ,
bgColor : "red.900" ,
} ,
{
2021-11-04 15:39:17 +00:00
text : ` What are the open initiatives for your DAO? ` ,
icon : FaVoteYea ,
color : "red.50" ,
bgColor : "red.900" ,
} ,
{
text : ` What is the level of participation for each initiative? ` ,
icon : FiActivity ,
color : "red.50" ,
bgColor : "red.900" ,
} ,
{
text : ` Which DAOs or other protocols interact with yours?
` ,
icon : RiOrganizationChart ,
2021-10-13 15:23:49 +00:00
color : "red.50" ,
bgColor : "red.900" ,
} ,
] }
2021-11-08 11:58:29 +00:00
imgURL = { assets [ "DAO" ] }
2021-10-13 15:23:49 +00:00
/ >
2021-10-13 16:56:14 +00:00
< / G r i d I t e m >
2021-08-06 12:24:18 +00:00
< GridItem
placeItems = "center"
w = "100%"
colSpan = "12"
pt = { [ "0" , "0" , "5.125rem" , null , "5.125rem" ] }
pb = "120px"
2021-11-03 18:16:30 +00:00
px = "7%"
2021-08-06 12:24:18 +00:00
>
2021-11-04 16:11:09 +00:00
< Stack direction = "column" justifyContent = "center" >
< chakra . span
textAlign = "center"
fontWeight = "600"
fontSize = "lg"
w = "100%"
h = "fit-content"
>
< Text
mb = { 18 }
fontSize = { [ "md" , "2xl" , "3xl" , "3xl" , "3xl" , "4xl" ] }
>
We believe that the blockchain is for everyone . This
requires complete < b > transparency < / b > . T h a t ’ s w h y a l l o u r
software is { " " }
< chakra . span
display = "inline-block"
textColor = "orange.900"
as = { Link }
href = "https://github.com/bugout-dev/moonstream"
>
< i > open source < / i >
< / c h a k r a . s p a n >
< / T e x t >
< / c h a k r a . s p a n >
2021-11-08 11:58:29 +00:00
< RouteButton
placeSelf = "center"
isExternal
w = { [ "100%" , "100%" , "fit-content" , null ] }
maxW = { [ "250px" , null , "fit-content" ] }
href = { ` https://github.com/bugout-dev/moonstream ` }
2021-11-08 13:43:51 +00:00
size = "md"
2021-11-08 11:58:29 +00:00
variant = "outline"
colorScheme = "blue"
leftIcon = { < FaGithubSquare / > }
>
git clone moonstream
< / R o u t e B u t t o n >
2021-11-08 13:43:51 +00:00
< Stack placeSelf = "center" pt = "12px" textAlign = "justify" >
2021-10-07 19:58:38 +00:00
< Text fontWeight = "500" fontSize = "24px" >
Want to find out more ? Reach out to us on { " " }
< Link
color = "orange.900"
onClick = { ( ) => {
mixpanel . get _distinct _id ( ) &&
mixpanel . track (
` ${ MIXPANEL _EVENTS . BUTTON _CLICKED } ` ,
{
[ ` ${ MIXPANEL _PROPS . BUTTON _NAME } ` ] : ` Join our discord ` ,
}
) ;
} }
isExternal
href = { "https://discord.gg/K56VNUQGvA" }
>
Discord
< / L i n k > { " " }
or { " " }
< Link
color = "orange.900"
onClick = { ( ) => {
mixpanel . get _distinct _id ( ) &&
mixpanel . track (
` ${ MIXPANEL _EVENTS . BUTTON _CLICKED } ` ,
{
2021-10-13 15:23:49 +00:00
[ ` ${ MIXPANEL _PROPS . BUTTON _NAME } ` ] : ` Early access CTA: developer want to find more button ` ,
2021-10-07 19:58:38 +00:00
}
) ;
toggleModal ( "hubspot-developer" ) ;
} }
>
request early access
< / L i n k >
< / T e x t >
< / S t a c k >
2021-11-04 16:11:09 +00:00
< / S t a c k >
2021-08-06 12:24:18 +00:00
< / G r i d I t e m >
< / G r i d >
< / F l e x >
< / B o x >
< / F a d e >
< / S u s p e n s e >
2021-07-30 11:25:17 +00:00
) ;
} ;
export async function getStaticProps ( ) {
const assetPreload = Object . keys ( assets ) . map ( ( key ) => {
return {
rel : "preload" ,
href : assets [ key ] ,
as : "image" ,
} ;
} ) ;
2021-08-02 12:49:09 +00:00
const preconnects = [ { rel : "preconnect" , href : "https://s3.amazonaws.com" } ] ;
2021-07-30 11:25:17 +00:00
const preloads = assetPreload . concat ( preconnects ) ;
return {
2021-11-04 16:15:42 +00:00
props : { metaTags : DEFAULT _METATAGS , preloads } ,
2021-07-30 11:25:17 +00:00
} ;
}
export default Homepage ;