Security

Last updated 4 October 2026

guap is a wallet for holding dollars, with a way to cash them out to a Nigerian bank. It never holds your funds and it cannot move them without you. Here is exactly what it can do, and how to check.

We never ask for a recovery phrase

There is no field for one anywhere, and never will be. Nobody legitimate will ever ask you for a seed phrase, a private key or a password to your wallet. If any site claiming to be us does, it is not us.

Your wallet’s keys are not ours

The wallet is created by Dynamic, our wallet provider, when you sign in with Google. Our servers never see or store its keys and cannot sign anything for you. Your balance is at your own address on the blockchain, where anyone can look it up.

You confirm every move

Before anything is signed, guap shows what it will do: what leaves your wallet, where it goes, and any fee. Nothing goes out until you hold the confirm button.

What the wallet will and will not sign

Every transaction is checked against these rules before it is signed, and anything outside them is stopped:

  • Token approvals only to Relay, which does conversions and swaps, or to the savings vault, and never unlimited.
  • Never an approve-all, and never Permit2.
  • Signed messages only for the gas top-up, which authorises one payment of a set amount to Relay, and a token permit to Relay or the vault.
  • Apart from sending tokens or coins, no calls to any contract other than Relay's and the vault.
  • On Solana, nothing that hands control of your tokens or your account to anyone else.

The contracts involved

We deploy nothing and own nothing. Transactions call public contracts belonging to other people:

  • 0x8335…02913 is USDC on Base, issued by Circle
  • 0xccc8…c315be and 0x4cd0…8bc31 are Relay, which does conversions and swaps
  • 0xeE8F…44b61 is Gauntlet USDC Prime on Base, the vault your savings go into

Fees are ordinary transfers to our fee address, shown on the confirmation screen before you sign. There is no upgradeable contract we control in the path.

Paying from your own wallet, on the off-ramp

The off-ramp lets you pay a bank account from a wallet you already have. Paying from Base needs a token approval before the transfer. Ours is for the exact amount of that single payout and nothing more:

approve(
  spender   0xccc88a9d…c315be   Relay router
  allowance 10040000            10.04 USDC, not unlimited
)

Check it in your wallet before signing. An unlimited approval reads as a very large number or as Unlimited; ours shows the figure on screen. On the off-ramp you sign only the approval and the transfer itself. If something asks you to sign an opaque message on our behalf there, it is not us.

Where a cash out goes

From your wallet, through Relay, to a single-use deposit address issued by our settlement provider, to your bank. We are not a step in that path and never hold the funds.

One exception, and it is in our terms too: if a bank rejects a payout, the refund is sent as USDC on Base, so it needs an EVM address. If you paid from a chain that has none, such as Solana, that refund reaches an address we control and we return it by hand.

Reporting something

If you find a vulnerability, or a site impersonating this one, message @dxFareed on Telegram. We would rather hear it early and awkwardly than late.

Security · guap