
Product
Microsoft Teams Notifications Are Now Available in Socket
Socket can now send alerts and supply chain attack notifications to Microsoft Teams, with filters that route the right updates to each channel.
@hypercerts-org/sdk-react
Advanced tools
React hooks and components for the Hypercerts ATProto SDK.
pnpm add @hypercerts-org/sdk-react @hypercerts-org/sdk-core @tanstack/react-query
@hypercerts-org/sdk-react
├── / → Factory, Provider, hooks, types
└── /testing → TestProvider, mocks, createMockATProtoReact
Types are inherited from @hypercerts-org/sdk-core (which re-exports from @hypercerts-org/lexicon):
import type {
HypercertClaim, // Base claim type from lexicon
HypercertCollection,
CreateHypercertParams,
Session,
} from "@hypercerts-org/sdk-react";
// The Hypercert type extends HypercertClaim with ATProto metadata
import type { Hypercert } from "@hypercerts-org/sdk-react";
// Hypercert = HypercertClaim & { uri: string; cid: string }
import { createATProtoReact } from "@hypercerts-org/sdk-react";
import { QueryClientProvider } from "@tanstack/react-query";
// 1. Create instance (typically in providers.ts)
const atproto = createATProtoReact({
config: {
oauth: {
clientId: "https://your-app.com/client-metadata.json",
redirectUri: "https://your-app.com/callback",
scope: "atproto",
jwksUri: "https://your-app.com/jwks.json",
jwkPrivate: process.env.ATPROTO_JWK_PRIVATE!,
},
},
});
// 2. Export hooks
export const { Provider, queryClient, useAuth, useProfile, useOrganizations, useHypercerts } = atproto;
// 3. Wrap app with QueryClientProvider
function App() {
return (
<QueryClientProvider client={queryClient}>
<Provider>
<MyApp />
</Provider>
</QueryClientProvider>
);
}
// 4. Use hooks in components
function AuthButton() {
const { status, login, logout } = useAuth();
if (status === "authenticated") {
return <button onClick={logout}>Logout</button>;
}
return <button onClick={() => login("user.bsky.social")}>Login</button>;
}
Share a single QueryClient for unified caching:
const queryClient = new QueryClient();
const atproto = createATProtoReact({ config, queryClient });
<QueryClientProvider client={queryClient}>
<WagmiProvider config={wagmiConfig}>
<atproto.Provider>
<App />
</atproto.Provider>
</WagmiProvider>
</QueryClientProvider>;
useAuth() → session, status, login, logout, refresh
useProfile(did?) → profile, update, isLoading
useRepository(opts?) → repository, isSDS, serverUrl
useOrganizations() → organizations, create (SDS only)
useOrganization(did) → organization (SDS only)
useCollaborators(did) → collaborators, grant, revoke (SDS only)
useHypercerts(did?) → hypercerts, create, fetchNextPage
useHypercert(uri) → hypercert, update, remove
For manual cache management:
import { atprotoKeys } from "@hypercerts-org/sdk-react";
// Invalidate all hypercerts
queryClient.invalidateQueries({ queryKey: atprotoKeys.allHypercerts() });
// Invalidate specific profile
queryClient.invalidateQueries({ queryKey: atprotoKeys.profile(did) });
import { TestProvider, createMockSession } from "@hypercerts-org/sdk-react/testing";
test("renders profile", () => {
render(
<TestProvider mockSession={createMockSession({ handle: "test.bsky.social" })}>
<ProfileComponent />
</TestProvider>,
);
});
pnpm build # Build
pnpm typecheck # Type check
pnpm lint # Lint
FAQs
React hooks and components for the Hypercerts ATProto SDK
We found that @hypercerts-org/sdk-react demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.

Product
Socket can now send alerts and supply chain attack notifications to Microsoft Teams, with filters that route the right updates to each channel.

Security News
pnpm 12 rewrites the package manager in Rust, cutting install times by up to 90% while preserving pnpm 11 workflows and lockfiles.

Security News
Socket CTO Ahmad Nassri joins AppSec leaders at Black Hat to discuss active malware, package manager risks, and software supply chain defense.