import { useEffect, useState } from "react";
import { getPrimarySomName } from "@/lib/sds";
export function DisplayName({ address }: { address: string }) {
const [name, setName] = useState<string | null>(null);
useEffect(() => {
getPrimarySomName(address).then(setName);
}, [address]);
return <span>{name || address}</span>;
}
<script type="module">
import { getPrimarySomName } from "./lib/sds.js";
const address = "0x123...abc";
const element = document.getElementById("username");
getPrimarySomName(address).then(name => {
element.textContent = name || address;
});
</script>
<span id="username">Loading...</span>
import { getPrimarySomName } from "./lib/sds";
async function resolveName(addr: string) {
const name = await getPrimarySomName(addr);
return name || addr;
}
const display = somniaName || walletAddress;
This ensures your app never breaks.
Next: Network details you’ll need for RPC access and smart contract connection.