Admin
The @rising-tide/sdk/admin entry point - admin-only protocol operations.
@rising-tide/sdk/admin provides admin-only operations for protocol operators. RisingTideAdmin wraps the core SDK: use the admin services directly for operator actions, and admin.core to reach the core SDK (pages, collections, and so on).
Usage
import { RisingTideAdmin } from "@rising-tide/sdk/admin";
const rtAdmin = new RisingTideAdmin({
baseUrl: process.env.RT_API_URL,
apiKey: process.env.RT_ADMIN_API_KEY,
});
// Admin-only operations
await rtAdmin.roles.listRoles();
await rtAdmin.users.assignUserRole(userId, { roleId });
await rtAdmin.fundingGroups.updateFundingGroup(id, { status: "APPROVED" });
// Core SDK access through the admin wrapper
await rtAdmin.core.smartProducts.list();Unlike the core client, RisingTideAdmin still ships its own React hooks for operator UIs -
useRoles, useFundingGroups, useFundingGroupByAddress, useEventContributions, the event-type
and ticket-style CRUD, and others. They take the admin client as an argument rather than reading it
from context, which is the tell that they are operator surface: every hook in
@rising-tide/ui/react reads its client from the provider.
useFundingGroupByAddress(stxAddress, sdk) is the one an operator reaches for most - it resolves a
cause from the address that receives its share, which is the direction a payout investigation runs.
A user-facing app wanting funding groups uses useFundingGroups / useFundingGroup from
@rising-tide/ui/react instead.
What it carries
RisingTideAdmin mounts the services an operator console needs as properties: roles, linkTypes, eventTypes, events, locations, ticketStyles, fundingGroups, payments, failedEvents, currencyTypes, transactions, collections, tags, styleSets, upload, contracts, privy, users, invites, stats, templates, chainhooks, errorLogs, apps, protocolEvents, storage, projections, pendingTransactions, renderJobs, crons, health and appAccess. appAccess is the operator surface for per-app access grants (listForUser, grant, revoke, roster). There is deliberately no non-admin client surface for granting access.
Access control
Admin operations require a master API key. A standard app-scoped key returns 403. This entry point is not part of the integration surface - it exists for the protocol operator panel and has no place in a user-facing app.