You can configure use-cardano by passing an options object to the useCardano hook.

type NodeProvider = "blockfrost" | "blockfrost-proxy"
type WalletProvider = "nami" | "eternl" | "gerowallet" | "flint"
type AllowedNetworks = ("Mainnet" | "Testnet")[]
type TestnetNetwork = "Testnet" | "Preview" | "Preprod"
type UseCardanoNodeOptions = {
  provider?: NodeProvider
  proxyUrl?: string
  projectId?: string
type UseCardanoOptions = {
  autoConnectTo?: WalletProvider
  autoReconnect?: boolean
  allowedNetworks?: AllowedNetworks
  testnetNetwork?: TestnetNetwork
  node?: UseCardanoNodeOptions

Options details


;"nami" | "eternl" | "gerowallet" | "flint"

If you want to automatically attempt to connect to a wallet provider, as soon as the user loads your site (even on their first visit), you can set this option to the name of the provider.

default: undefined


true | false

If you don't want to automatically reconnect the user to the last used wallet provider you can set this option to false.

default: true


("Mainnet" | "Testnet")[]

If you want to limit the networks that the user can connect to, you can set this option to an array of the networks you want to allow. If the user tries to connect to a network that is not in this array, they will be shown an error and the lucid instance will be set to undefined, preventing the user from interacting with the blockchain.

default: ["mainnet"]


"Testnet" | "Preview" | "Preprod"

Since the three test networks use the same id, 0, we cannot distinguish between them from the wallet PoV. However, to instruct which testnet you intend to use, you can set this is the testnetNetwork option. This is only indirectly used internally in use-cardano, in communication to the node provider (Blockfrost) but it could be used when communicating to the user etc.

default: Preview


"blockfrost" | "blockfrost-proxy"

The node provider is the service that you will use to connect to the Cardano blockchain. Currently, only Blockfrost (opens in a new tab) is supported, but we are looking to expend on this, as lucid does the same.

We suggest that you use the blockfrost-proxy variant. With this, you need to provide a proxy api endpoint, but it allows you to not expose your Blockfrost project id to the client. See the NextJS template and the /pages/api/blockfrost/[[...all]].ts file for an example of this.

default: blockfrost


string | undefined

Needed if options.node.provider is set to blockfrost-proxy. This is the url of the proxy api endpoint.

default: undefined


string | undefined

Needed if options.node.provider is set to blockfrost. This is the Blockfrost project id.

default: undefined