Configuration
Each SDK uses the same set of configuration knobs. Only the names and types change to match each language’s conventions.
Constructor
Section titled “Constructor”new Fidemark({ network, // "base-sepolia" | "base" | NetworkConfig signer, // optional: ethers Signer privateKey, // optional: hex private key provider, // optional: ethers Provider (read-only) verifyUrlBase, // optional: override the public verify URL ensProvider, // optional: Ethereum mainnet Provider for ENS lookups});Fidemark( network, # NetworkName | NetworkConfig private_key=..., # optional, hex private key provider_url=..., # optional, RPC URL override verify_url_base=..., # optional ens_provider_url=..., # optional, Ethereum mainnet RPC for ENS)fidemark.New(fidemark.Config{ Network: cfg, // *NetworkConfig PrivateKey: "...", // optional ProviderURL: "...", // optional, RPC override VerifyURLBase: "...", // optional ENSProviderURL: "...", // optional, ENS mainnet RPC})Custom RPC
Section titled “Custom RPC”import { Fidemark, getNetwork } from "@fidemark/sdk";import { JsonRpcProvider } from "ethers";
const fidemark = new Fidemark({ network: getNetwork("base"), provider: new JsonRpcProvider("https://your-rpc.example.com"), privateKey: process.env.PRIVATE_KEY,});from fidemark import Fidemark, get_network
fidemark = Fidemark( network=get_network("base"), provider_url="https://your-rpc.example.com", private_key=os.environ["PRIVATE_KEY"],)network, _ := fidemark.GetNetwork("base")client, err := fidemark.New(fidemark.Config{ Network: network, ProviderURL: "https://your-rpc.example.com", PrivateKey: os.Getenv("PRIVATE_KEY"),})Signing modes
Section titled “Signing modes”All three SDKs support the same modes:
- Pass a private key (or, in TypeScript, an ethers
Signer). The SDK builds a transaction signer bound to the network’s RPC. - Read-only: omit the key entirely. Verify methods work; the attest and revoke methods raise
INVALID_INPUT.
In TypeScript, signer and privateKey are mutually exclusive. The Python and Go SDKs accept the private key only.
Verification URL
Section titled “Verification URL”The default is https://verify.fidemark.dev/<uid>. Override per-instance via verifyUrlBase / verify_url_base / VerifyURLBase. Useful when self-hosting the verify page on a private domain.
Network selection
Section titled “Network selection”| Network | Constructor arg |
|---|---|
| Base Sepolia | getNetwork("base-sepolia") |
| Base mainnet | getNetwork("base") |
The resolver address and schema UIDs for each public network are bundled inside the published SDK package, so getNetwork(name) returns a fully-populated config without any extra setup. If you call it for a network where Fidemark hasn’t rolled out yet, or your installed SDK version predates that rollout, the call raises NETWORK_NOT_DEPLOYED. Upgrade the package or wait for the next release.