No Fianto fee during the beta. Any fee comes with at least 30 days notice. See pricing
Wallets8 min read

What a wallet warning such as "This transaction may be unsafe" means, and what to check.

Phantom's simulation warning means the wallet could not predict what a transaction will do, and its new-domain notice means Phantom has not reviewed the site yet; neither is a finding that the transaction is malicious. Phantom's FAQ lists three causes for its simulation warning: more than one signer, a transaction close to Solana's size limit, and a transaction that would fail. Treat any warning as a reason to read the request yourself, and on a Fianto checkout a one-off payment should show only the Total leaving in USDC plus a small SOL fee.

On this page
Which warning is your wallet showing?Why does a wallet fail to simulate a transaction?Does a wallet warning mean the site is a scam?Should a Fianto one-off payment trigger a warning?Why can a subscription checkout look different in your wallet?How do site owners clear a Phantom warning?SourcesQuestions
TL;DR
  • Phantom shows "This dApp could be malicious. Do not proceed unless you are certain it is safe." when it cannot simulate a transaction; a separate notice covers domains it has not reviewed.
  • The documented causes are multiple signers, a transaction near the size limit, and a transaction that would fail, so honest sites can trigger warnings and scam sites can avoid them.
  • A Fianto one-off payment has one signer and a handful of instructions, and Fianto checks your USDC and SOL before your wallet opens. A subscription checkout has two signers.

Which warning is your wallet showing?

The warning text tells you which check failed, so start by matching it. These are the messages as their sources publish them on 15 October 2026; wallet wording changes between versions.

MessageSourceWhat it means
"This dApp could be malicious. Do not proceed unless you are certain it is safe."Phantom's developer docsPhantom could not simulate the transaction, so it cannot show what it will do
"Failed to estimate balance changes. This transaction may be unsafe"A developer's question in Phantom's docs repository, April 2024An earlier wording, from the title of a developer's question about a transaction their backend also signed: no balance-change preview was possible
"This domain is new or has not been reviewed yet. Proceed with caution."Phantom's developer docsPhantom has not reviewed the site; the docs say it "typically disappears after a few days once the domain has been reviewed"
A warning about an unverified assetSolflare help, 10 July 2024"Solflare incorporates warnings to alert you when interacting with unverified assets."

A site Phantom has judged malicious is different again: its scam guide says blocked domains trigger a warning when you try to connect. That is a verdict, not a failed prediction, and the answer to it is to leave. For a token warning on something called USDC, the mint address decides, as checking real USDC on Solana shows.

Why does a wallet fail to simulate a transaction?

A wallet fails to simulate a transaction when it cannot run it against the current state of the chain and get a clean result. Simulation is a dry run. Solana's RPC method for it "Simulates a signed transaction using the chain data available at the requested commitment, without broadcasting it." The wallet reads the predicted token balances before and after, and shows you the difference.

Phantom's FAQ says "If Phantom can't accurately simulate a transaction, users may see a warning message. This can happen when:"

  • "The transaction has multiple signers"
  • "The transaction approaches Solana's size limit"
  • "The transaction would fail during simulation"

The size limit is 1,232 bytes, according to Solana's transaction docs. A transaction fails in simulation for the same reasons it fails for real: not enough tokens, not enough SOL for the fee, an account that does not exist, or a recent blockhash that has expired (see "Blockhash not found"). Solana's docs also say "Fees are still charged on failure", so a warning that predicts a failure is worth heeding even on a site you trust; why a Solana payment fails goes through the common errors.

Does a wallet warning mean the site is a scam?

No, a warning on its own does not mean the site is a scam, and the absence of a warning does not mean it is safe. Two of Phantom's three listed causes, more than one signer and a large transaction, are ordinary in legitimate apps. In the other direction, Phantom's own 2021 safety post said its simulation "does not provide a guarantee", and a drainer that builds a short, single-signer transaction can produce a clean preview of a transfer you did not mean to make.

A practical rule: proceed through a warning only when all three of these hold.

  1. You reached the site by your own route, typed or bookmarked, not through an unexpected message.
  2. The domain in the address bar is the one you expect for this service.
  3. You can say what every instruction or balance change in the request is for. If the request includes an approval or an owner change you did not expect, stop. If you already approved one, revoking a token approval on Solana removes it.

If any of them fails, reject. Rejecting signs nothing and sends nothing. How drainers build their requests, and what to do if you already signed one, is in wallet drainers and fake payment requests.

Should a Fianto one-off payment trigger a warning?

A Fianto one-off payment is built to avoid every cause on Phantom's list, though no site can promise how a wallet will judge it. Checked against the list:

Phantom's listed causeA Fianto one-off payment
Multiple signersOne signer: you, the payer, who also pays the Solana fee
Near the size limitA legacy transaction of two compute-budget instructions and one USDC transfer, or two when a Fianto fee applies (none during the beta), with no lookup tables
Would fail in simulationBefore your wallet opens, Fianto checks that your USDC account exists and is not frozen, that it holds the Total, and that the wallet keeps enough SOL for the fee and its own minimum balance

When one of those checks fails, the checkout tells you instead of handing your wallet a transaction that would fail. A wallet short of SOL, for example, sees a line that starts "Not enough SOL for the Solana network fee and this wallet's minimum balance." and says how much to add; why you need SOL to send USDC explains the minimum balance.

One cause the checkout cannot rule out is time. The transaction carries a recent blockhash and expires, so a wallet prompt left open long enough can fail its simulation. Reject it, and the checkout keeps your wallet under "Paying from" and says "You declined the payment in your wallet, so nothing was sent. Press Pay when you are ready to try again." Fianto asks wallets only to sign, never to sign and send (which is why some wallets cannot pay at checkout), and sends the signed transaction itself; for transactions with more than one signer, Phantom's developer docs recommend signTransaction rather than sign-and-send.

See every line the checkout shows before your wallet opens.

How the hosted checkout works

Why can a subscription checkout look different in your wallet?

A Fianto subscription checkout is a larger transaction with two signers, which puts it on Phantom's list. Besides you, Fianto's charging key signs it, because the program lets only a listed collector pull the first period; Fianto adds that signature after checking what you signed, and the key pays nothing. The transaction creates the subscription on chain with a cap per period, pays the first period to the merchant and any fees to Fianto, and, on a wallet's first subscription, sets up the USDC permission the program uses.

So read it against the checkout page rather than against the preview alone. The page shows "Charged today", the network fee (0.01 USDC with each charge today, on plans created since 6 October 2026), the SOL for account rent (rounded up to the next 0.001 SOL), and "Most [merchant name] can charge", the cap per period that the program enforces. The USDC leaving now should match "Charged today", which already includes the network fee. Sign message vs sign transaction covers what the subscription approval is, and What it costs in the payer docs lists each charge.

How do site owners clear a Phantom warning?

Site owners clear a Phantom simulation warning by removing its cause, and Phantom's developer docs set out the fixes:

  • Limit the transaction to one signer, or have Phantom sign first with signTransaction and collect the other signatures afterwards.
  • Split a large transaction into several requests, or use Address Lookup Tables to shrink it.
  • Simulate it yourself on your own RPC node, with signature verification turned off, before asking for a signature, so a transaction that would fail never reaches the wallet.
  • If the warning stays, contact Phantom's review team through the form the docs link.

The new-domain notice needs no code change: it clears once Phantom has reviewed the domain. In the April 2024 discussion, a Phantom team member answered a developer whose backend paid the fee and signed first: "If the user has to sign and broadcast a transaction there's no way that I'm aware of to bypass that." Merchants on Fianto do none of this; the checkout builds and sends the transaction.

Sources
Questions

Questions about wallet warnings.

What does "This dApp could be malicious" mean in Phantom?

Phantom's docs say the message appears when Phantom is unable to safely predict a transaction's outcome before it runs. It is a failed simulation, not proof the site is malicious.

Is it safe to approve a transaction with a warning?

Only when you reached the site by your own route, the domain is the one you expect, and you can account for every balance change. Otherwise reject: rejecting costs nothing.

Why does Phantom fail to estimate balance changes?

Phantom's FAQ names three causes: the transaction has multiple signers, it approaches Solana's size limit, or it would fail during simulation.

How long does the Phantom new domain warning last?

Phantom's docs say it typically disappears after a few days, once the domain has been reviewed.

Do I pay a fee if a transaction fails?

Yes, if it reaches the network: Solana's docs say fees are still charged on failure. A transaction rejected in the wallet, or refused by Fianto before sending, costs nothing.

Read next.

Wallets9 min read

Solana wallet drainers and fake payment requests: how to spot a malicious transaction

A Solana wallet drainer is a website or app built to make you sign a transaction that hands your tokens, or control over your token accounts, to someone else. Nothing it does can be undone once the transaction lands, so the only defence is reading the request before you approve: who gets paid, how much, and whether it contains anything other than a transfer. A genuine Fianto one-off payment, served from checkout.fianto.xyz, holds one USDC transfer of the price to the merchant, plus a second transfer to Fianto only when there is a Fianto fee, and there is none during the beta.

Wallets7 min read

Why your wallet doesn't show at checkout

A Fianto checkout shows only the Solana wallets that announce themselves to the page through the Wallet Standard, and it can pay only with those that can sign a transaction without sending it. A wallet that is installed in another browser, switched off, blocked in a private window or open only on your phone does not appear as installed; one that appears with the tag "Cannot sign here" can only sign and send in one step. The fix is to open the page where the wallet runs, or to pay with a wallet that offers sign-only signing.

Solana7 min read

"Blockhash not found": why a Solana payment expires if you wait to sign

"Blockhash not found" means the transaction names a recent block that the network no longer accepts, or does not know yet, so it will never be processed. Solana only takes a blockhash up to 151 blocks old, which makes every signed transaction a short-lived object: wait too long in the wallet and it expires unsent. Nothing moves and no fee is charged; the fix is to build a fresh transaction and sign it promptly.

Read the request, not just the warning.

A Fianto payment shows the Total before your wallet opens.

New posts are announced on X and Discord.