Skip to main content
Avok ships no third-party infrastructure as a default. Each endpoint an app talks to is a trust boundary, so the integrator chooses who to trust. This is a deliberate posture, not an omission.

No default RPC

An RPC endpoint answers questions like “what address does vitalik.eth resolve to?” A dishonest one can redirect a user’s funds. So Avok never picks an RPC for you. Set rpcUrls per chain on the client config. You have three options, none of which requires Avok to run anything:
  • Your own provider URL. A domain-allowlisted key is safe in a browser bundle. It is useless from any other origin, so a serverless app needs no backend.
  • A proxy you host, which keeps the provider key server-side.
  • A URL your end user supplies, the way Jupiter and Solflare expose a custom-RPC field.
An unset chain falls back to the registry’s public endpoint, which is development-only. Public endpoints are rate-limited, carry no SLA, and block the indexed reads a wallet needs. Public Solana endpoints, for example, reject or hang on getTokenAccountsByOwner, so SPL balances silently read zero. Set rpcUrls before production.

No default paymaster or Kora endpoint

The same reasoning applies to sponsorship. A fee payer sees, prices, and can refuse every transaction you send, so Avok never defaults one. Supply bundlerUrl and paymasterUrl (EVM) or koraUrl (Solana) yourself. See Sponsorship. This holds even if the SDK’s authors run sponsorship infrastructure. Any such service is one you may choose to point at, configured exactly like any other provider’s, with no baked-in URL and no fallback status.

The operator owns the identity

Avok is a white-label SDK: the operator ships their wallet on it. The name, icon, and reverse-DNS id that a dapp discovers in its wallet picker (over EIP-6963 for EVM and the Solana Wallet Standard) are the operator’s, supplied at wiring time through the wallet argument to createAvokClient.
  • wallet.name and wallet.rdns are recommended. Set them for a proper display name and a stable id. If you omit either, the wiring derives it from the page’s own origin, so the identity is still honest: named after the real origin, never anonymous and never an Avok brand.
  • wallet.icon is optional; a neutral blank placeholder is used until you provide one.