Developer integration
Compose reads from the shared protocol package or normalized API. Do not invent protocol truth in app code.
Read with the package
import { createProtocolClient, FROZEN_NETWORK } from '@evidra/protocol';
const protocol = createProtocolClient({ rpcUrl: FROZEN_NETWORK.rpcUrl });
const fact = await protocol.registry.getFact(factKey);Contract truth
User writes originate from the connected browser wallet. Admin and resolver methods are not product UI operations.
Integration note
Use explorer helpers from the shared package and never accept arbitrary explorer domains.