Client API

client.createEvmGatewayUnlock

Create the Arc Gateway UI controller

Create the Arc Gateway UI controller. Select the intended network explicitly (default is Arc Testnet). autoMount defaults true. Retain unresolved proofs and use retryVerification instead of authorizing another payment; destroy removes listeners.

Signature

createEvmGatewayUnlock(resource: NibgateResource | string, options?: NibgateEvmGatewayUnlockOptions): NibgateEvmGatewayUnlockController;

Parameters

ParameterType
resourceNibgateResource | string
options?NibgateEvmGatewayUnlockOptions

Returns

NibgateEvmGatewayUnlockController

Example

App-supplied identifiers such as provider, signer, walletCheckout, sendTransfer, signOwnership and verifiedPaymentSignature represent your configured wallet integration or verified result. These are usage examples, not an automatically executed checkout.

import { createNibgate } from '@nibgate/sdk';
const client = createNibgate();
const resource = { id: 'article-1', title: 'Example article', type: 'article', price: '1', url: 'https://creator.example/articles/1' };

const controller = client.createEvmGatewayUnlock(resource, { network: "eip155:5042002", provider, autoMount: false });
controller.mount();
// On component cleanup:
controller.destroy();

Source

Declaration, line 114 · Implementation, line 23 · Client binding, line 76

Pinned SDK 0.4.40 at 345fc04b984f01366cbe2a9f4064f22268d5d3f6.

NibgateResource

export type NibgateResource = {
  id: string;
  title?: string;
  type?: NibgateContentType | string;
  contentType?: NibgateContentType | string;
  price?: string | number;
  paymentRail?: NibgatePaymentRail | string;
  amount?: string | number;
  recipient?: string;
  receiver?: string;
  receiverAddress?: string;
  payTo?: string;
  creatorWallet?: string;
  path?: string;
  route?: string;
  url?: string;
  imageUrl?: string;
  image?: string;
  description?: string;
  summary?: string;
  tags?: readonly string[] | string;
  access?: NibgateAccessMode | NibgateAccessPolicy;
  unlock?: NibgateUnlockMode | NibgateUnlockPolicy;
  ratingsEnabled?: boolean;
  enableRatings?: boolean;
  reputation?: {
    ratingsEnabled?: boolean;
    [key: string]: unknown;
  };
  [key: string]: unknown;
};

NibgateEvmGatewayUnlockOptions

export type NibgateEvmGatewayUnlockOptions = {
  source?: string;
  hosted?: boolean;
  accessPath?: string;
  method?: string;
  headers?: Record<string, string>;
  body?: BodyInit | null;
  network?: string;
  paymentProvider?: string;
  circleClientModule?: Record<string, unknown>;
  /** @deprecated The SDK now ships a native BatchEvmScheme — no CDN needed */
  circleClientModuleUrl?: string;

  /** Explicit selection takes precedence over an injected wallet, including null. */
  provider?: NibgateEvmGatewayProvider | null;
  /** Read the currently selected EIP-1193 provider; null never falls back to window.ethereum. */
  getProvider?: () => NibgateEvmGatewayProvider | null | undefined;
  connectButton?: string | Element | null;
  disconnectButton?: string | Element | null;
  unlockButton?: string | Element | null;
  clearButton?: string | Element | null;
  walletLabel?: string | Element | null;
  status?: string | Element | null;
  unlockedTarget?: string | Element | null;
  noWalletMessage?: string;
  challengeMessage?: string;
  paymentMessage?: string;
  successMessage?: string;
  disconnectMessage?: string;
  autoMount?: boolean;
  gateOptions?: NibgateGateOptions;
  onStatus?: (message: string) => void;
  onUnlock?: (result: NibgateAccessCheckResult) => void;
};

NibgateEvmGatewayUnlockController

export type NibgateEvmGatewayUnlockController = {
  resource: NibgateResource;
  connect(): Promise<string>;
  disconnect(): Promise<boolean>;
  unlock(): Promise<NibgateAccessCheckResult | { ok: false; status: number; error: string; resource: NibgateResource }>;
  /** Recovery status only; does not expose the payment signature. */
  getPendingPayment(): { network: string; address: string; submitted: boolean; canRetry: boolean } | null;
  /** Resubmit only the retained proof, without signing another payment. */
  retryVerification(): Promise<NibgateAccessCheckResult | { ok: false; status: number; error: string; resource: NibgateResource }>;
  /** Explicitly request official selected-chain RPC metadata; never resumes payment. */
  repairConnection(): Promise<{ chainId: number; blockNumber: string; checkedAt: number; requestedRpcUrl: string }>;
  /** Clears local access but preserves an unresolved payment proof. */
  clear(): void;
  hydrate(): Promise<void>;
  mount(): NibgateEvmGatewayUnlockController;
  destroy(): void;
  getProvider(): NibgateEvmGatewayProvider | null;
  getWalletAddress(): string;
};