+ Create a validator
+ Select Laconic account:
+
+
+ {Boolean(cosmosAddress) && (
+ <>
+ {participant ? (
+ Onboarded participant
+ ) : (
+ No participant found
+ )}
+
+
+ {participant && (
+
+ Cosmos Address: {participant.cosmosAddress}
+ Nitro Address: {participant.nitroAddress}
+ Role: {participant.role}
+ KYC ID: {participant.kycId}
+
+ )}
+
+
+ {participant?.role === "validator" && (
+ <>
+
+ {
+ setIsError(false);
+ setMoniker(e.target.value);
+ }}
+ error={!isMonikerValid && isError}
+ helperText={!isMonikerValid && isError ? "Moniker is required" : ""}
+ />
+
+
+
+ Fetch your validator public key using the following command (refer
+
+ this guide
+
+ )
+
+
+
+
+ {`laconic-so deployment --dir testnet-laconicd-deployment exec laconicd "laconicd cometbft show-validator" | jq -r .key`}
+
+
+
+
+ {
+ setIsError(false);
+ setPubKey(e.target.value);
+ }}
+ error={!isPubKeyValid && isError}
+ helperText={!isPubKeyValid && isError ? "Public key must be 44 characters" : ""}
+ />
+
+ Send transaction to chain
+
+
+ {JSON.stringify(msgCreateValidator, replacer, 2)}
+
+
+
+
+ Send transaction
+
+
+ >
+ )}
+ >
+ )}
+
+ );
+};
+
+export default Validator;
diff --git a/src/pages/ValidatorSuccess.tsx b/src/pages/ValidatorSuccess.tsx
new file mode 100644
index 0000000..518ddcd
--- /dev/null
+++ b/src/pages/ValidatorSuccess.tsx
@@ -0,0 +1,42 @@
+import React from 'react';
+import { useLocation } from 'react-router-dom';
+
+import { Box, Link, Typography } from '@mui/material';
+
+const ValidatorSuccess = () => {
+ const location = useLocation();
+ const { validatorAddress } = location.state as {
+ validatorAddress?: string
+ };
+
+ return (
+