πŸ” Strong Authentication

An optional parameter that can enabled for your account for added security is to enforce authentication for customers and withdrawers. This prevents anyone who knows a wallet address from being able to view the cards and bank accounts linked to a particular wallet address.

Implementation

Coinflow uses wallet message signing authentication to validate that a particular user owns the wallet associated with their account. In order to enable this in your integration you will need to implement the signMessage function in your wallet.

πŸ“˜

Please upgrade to @coinflowlabs/react > v3 and @coinflowlabs/react-native > v2

Solana

<CoinflowPurchase
  ...
  wallet={{
    ...
    signMessage: (message: UInt8Array) => Promise<UInt8Array>;
  }}
 />

EVM

import { useSignMessage } from "wagmi";

const {signMessageAsync} = useSignMessage();

const signMessage = useCallback(
  async (message: string) => {
    // It is not necessary to use wagmi you can use any custom logic to generate a valid signature for the address
    return await signMessageAsync({ message });
  },
  [signMessageAsync]
);

<CoinflowPurchase
  ...
  wallet={{
    ...
    signMessage,
  }}
 />

Enable for your merchant account

Once you have message signing integrated for your application you can head to https://mechant.coinflow.cash/settings and enable strong authentication for your account.

🚧

Enabling this without implementing signMessage from above will break all withdraws and not allow checkout customers to view their saved cards.