+ {/* Hero snail */}
+
+
+
+
+
+
+ {/* Address lookup input */}
+
+
+ Check any address
+
+ setCustomAddress(e.target.value)}
+ className={css({
+ width: "100%",
+ padding: "10px 14px",
+ fontSize: 13,
+ fontFamily: "monospace",
+ background: "secondary",
+ border: "1px solid",
+ borderColor: (customAddress && !isAddress(customAddress) && !isEnsName) || ensError ? "negative" : resolvedEnsAddress ? "positive" : "separator",
+ borderRadius: 8,
+ color: "content",
+ outline: "none",
+ transition: "border-color 0.2s",
+ _focus: {
+ borderColor: "accent",
+ },
+ _placeholder: {
+ color: "contentAlt",
+ opacity: 0.6,
+ },
+ })}
+ />
+ {customAddress && !isAddress(customAddress) && !isEnsName && (
+
+ Invalid address format
+
+ )}
+ {isEnsName && isResolvingEns && (
+
+ Resolving {customAddress}...
+
+ )}
+ {isEnsName && ensError && !isResolvingEns && (
+
+ {ensError}
+
+ )}
+ {isEnsName && resolvedEnsAddress && !isResolvingEns && (
+
+ {customAddress} → {resolvedEnsAddress.slice(0, 6)}...{resolvedEnsAddress.slice(-4)}
+
+ )}
+ {isCustomLookup && isAddress(customAddress) && (
+
+ Looking up: {customAddress.slice(0, 6)}...{customAddress.slice(-4)}
+
+ )}
+
+
+ {/* Main reveal card */}
+
+
+ {/* NERI Allocation */}
+
+
+ {isCustomLookup ? "NERI Allocation" : "Your NERI Allocation"}
+
+
+ {revealed ? "Revealed" : "Ready to reveal"}
+
+
+
+
+ {revealed ? (
+ <>
+
+ {neriAmountSpring.number.to((n) => n.toLocaleString('en-US', { maximumFractionDigits: 0 }))}
+
+
+ >
+ ) : (
+ <>
+
+ ???
+
+
+ >
+ )}
+
+
+ {canReveal && (
+
+ Click reveal to see the NERI allocation!
+
+ )}
+
+ {!lookupAddress && !account.isConnected && (
+
+ Enter an address above or connect your wallet.
+
+ )}
+
+
+
+ {/* Shells breakdown card */}
+ {lookupAddress && (
+
+
+
+
+ {isCustomLookup ? "Shells Earned" : "Your Shells Earned"}
+
+
+ {revealed ? (
+
+ {shellAmountSpring.number.to((n) => n.toLocaleString('en-US', { maximumFractionDigits: 0 }))}
+
+ ) : (
+
+ {hasShells ? format(shellBalance ?? DNUM_0, 0) : "0"}
+
+ )}
+
+
+
+
+ {/* Activities breakdown */}
+ {userActivities.length > 0 && (
+
+
+ Earned from:
+
+
+ {userActivities.map((activity) => (
+
+ {activity}
+
+ ))}
+
+
+ )}
+
+ {userActivities.length === 0 && hasShells && isLoadingActivities && (
+
+ Loading activities...
+
+ )}
+
+ {/* Bonus stats */}
+ {(activityStats || hasGoSlowNft) && (
+
+
+ Bonus multipliers:
+
+
+ {activityStats?.map((stat) => {
+ // Weight is in basis points: 1000 = 1x, 1500 = 1.5x
+ const multiplier = stat.weight / 1000;
+ if (multiplier <= 1) return null;
+ return (
+
+
+ {stat.label}
+
+
+ {multiplier}x
+
+
+ );
+ })}
+ {hasGoSlowNft && (
+
+
+ GoSlow NFT
+
+
+ Bonus!
+
+
+ )}
+
+
+ )}
+
+
+ )}
+
+ {!isCustomLookup && }
+
+ {!revealed && canReveal && (
+
+ )}
+
+ {revealed && (
+
+ {isCustomLookup ? "NERI tokens will be sent directly to this wallet!" : "NERI tokens will be sent directly to your wallet!"}
+
+ )}
+
+ {/* Slogan */}
+
+ Go slow.
+
+
+