Reading Blockchain Data
useSuiClientQuery
The primary hook for querying blockchain data:Copy
import { useSuiClientQuery } from "@mysten/dapp-kit";
function MyComponent() {
const { data, isPending, error } = useSuiClientQuery(
"getOwnedObjects",
{ owner: "0x123..." }
);
if (isPending) return <div>Loading...</div>;
if (error) return <div>Error: {error.message}</div>;
return <pre>{JSON.stringify(data, null, 2)}</pre>;
}
Get SUI Balance
Copy
import { useSuiClientQuery, useCurrentAccount } from "@mysten/dapp-kit";
function Balance() {
const account = useCurrentAccount();
const { data } = useSuiClientQuery(
"getBalance",
{ owner: account?.address as string },
{ enabled: !!account }
);
const balance = Number(data?.totalBalance ?? 0) / 1_000_000_000;
return <div>Balance: {balance.toFixed(4)} SUI</div>;
}
Get Owned Objects
Copy
import { useSuiClientQuery, useCurrentAccount } from "@mysten/dapp-kit";
function MyObjects() {
const account = useCurrentAccount();
const { data, isPending } = useSuiClientQuery(
"getOwnedObjects",
{
owner: account?.address as string,
options: {
showContent: true,
showType: true,
},
},
{ enabled: !!account }
);
if (!account) return <div>Please connect your wallet</div>;
if (isPending) return <div>Loading...</div>;
return (
<div>
<h3>Your Objects ({data?.data.length})</h3>
<ul>
{data?.data.map((obj) => (
<li key={obj.data?.objectId}>{obj.data?.objectId}</li>
))}
</ul>
</div>
);
}
Next Steps
Sign Transactions
Build, sign, and execute transactions