Everything you need to know about Flashy Chat V2, its features, and how it works.
Find answers to common questions about Flashy Chat's functionality, security, and usage — from image messages and IPFS to on-chain ads and flash loans. If you can't find what you're looking for, feel free to ask in our community chat.
Flashy Chat V2 is a decentralized messaging and advertising platform on Ethereum and Base. Every message and every ad is a real blockchain transaction that flash-loans the entire Morpho pool — billions of dollars in on-chain volume per transaction. V2 adds image messages stored on IPFS, a first-class advertising system, and live on-chain statistics.
You send a message by paying a fee: 0.02 ETH for text messages and 0.04 ETH for media (image) messages. Each message is stored as a blockchain event forever and triggers sequential Morpho flash loans across all supported tokens. The contract owner can send messages without paying fees.
Attach a JPEG, PNG, GIF or WebP image (up to 5MB) in the chat. The image is uploaded to IPFS — a decentralized storage network — and the message stores the permanent ipfs:// content identifier on-chain. The chat renders images directly from an IPFS gateway. Media messages cost 0.04 ETH instead of the 0.02 ETH text fee.
The advertise() function runs an ad that flash-loans every supported token in one transaction — typically billions of dollars in volume. A plain self-ad (no custom content, promoting flashy.chat) is completely free for everyone; you only pay gas. A custom ad with your own text and sponsor URL costs 0.01 ETH. Each ad emits an AdSent event with your text, your link, and the exact amount of every token loaned — attributed to your address forever.
Flash loans are uncollateralized loans that must be borrowed and repaid within the same transaction. Flashy Chat V2 integrates flash loans through the Morpho protocol: every message and every ad sequentially borrows Morpho's entire balance of each supported token and repays it in the same transaction. The MessageSent and AdSent events are emitted at the exact moment all loaned tokens are held.
Text messages cost 0.02 ETH, image (media) messages cost 0.04 ETH, custom ads cost 0.01 ETH, and plain self-ads are free. All fees can be adjusted by the contract owner (setMessageFee, setMediaFee, setAdFee), with events emitted on every change. Fees are transferred to the contract owner; the owner is exempt from all fees. Excess ETH is automatically refunded in the same transaction.
Whatever Morpho currently holds — the homepage shows the live total. The contract exposes getFlashableAmounts(), which returns the exact amount of every token the next message or ad would flash-loan. At the time of writing this is several billion dollars combined across Ethereum and Base, and it changes block by block with Morpho's balances.
Flashy Chat V2 is deployed on Ethereum Mainnet (0x2aB1C2d498AA2d7569D6B46FB2886f262d72DCd6) and Base (0xC1974C124D90C5eE6ADe21C6558ae86F20AFB740). Both contracts are verified on Etherscan, Basescan, Blockscout and Sourcify and offer identical functionality.
The V1 contracts on Ethereum and Base remain on-chain forever, and their full message history is preserved in the read-only archive at /chat-v1. New messages are sent through the V2 contracts, which add typed messages (text and media), the advertising system, on-chain statistics, and stricter access control.
The token lists are ranked by Morpho's actual holdings to maximize volume per message: 17 tokens on Ethereum Mainnet (cbBTC, wstETH, wBTC, weETH, sUSDe, USDC, and more) and 16 on Base (cbBTC, USDC, WETH, cbXRP, cbADA, cbDOGE, and more). Tokens with a zero Morpho balance are skipped automatically, and the owner can add or remove tokens as Morpho markets evolve.
The frontend listens for MessageSent events directly from the blockchain. When a new message lands on-chain, it appears in the chat without a page refresh. Message history is loaded from block explorer APIs, with a direct RPC fallback.
Each message displays the total USD volume its flash loans moved. Token transfer amounts are decoded from the transaction and priced at the transaction's block time using DefiLlama's historical price API. Ad volume is computed even more directly: the AdSent event itself contains every loaned token amount.
The contract owner can: (1) send messages and ads without fees, (2) update fees via setMessageFee()/setMediaFee()/setAdFee(), (3) manage supported tokens via addToken()/removeToken(), (4) set the promotional website via setWebsite(), and (5) withdraw contract funds via withdrawEther()/withdrawToken(). In V2 every one of these functions is protected with onlyOwner access control.
V2 implements reentrancy protection using OpenZeppelin's ReentrancyGuard, strict onlyOwner access control on every administrative function, SafeERC20 for token transfers, and a Morpho-only authorization check on the flash loan callback. The contracts are verified on all major explorers so the deployed bytecode can be checked against the source.
The contract includes an automatic refund system. If you send more ETH than the required fee, the excess is returned to your wallet within the same transaction — you always pay exactly the fee, never more.
Yes! Every message and ad is a blockchain transaction with a unique hash. The interface links each one to Etherscan (Ethereum) or Basescan (Base), where you can verify the flash loan transfers, the emitted events, and the full transaction details.
MessageSent(address sender, uint8 msgType, string content) for chat messages — msgType 0 is text, 1 is an IPFS image; AdSent(address sponsor, string adText, string url, address[] tokens, uint256[] amounts) for ads, including the full loaned volume; PresentBy(string) carrying the promoted website or sponsor URL; plus FeeUpdated, MediaFeeUpdated, AdFeeUpdated, WebsiteUpdated and TokenAdded/TokenRemoved for administration.
getStats() returns the total number of messages, the total number of ads, and the cumulative amount ever flash-loaned per token — all in a single call. getFlashableAmounts() returns what the next transaction would borrow. The website's live numbers come straight from these functions.
Flashy Chat works with any modern web browser and Web3-compatible wallets including MetaMask, WalletConnect, Coinbase Wallet, and others. The interface automatically detects your wallet connection and network, and offers one-click network switching.
Yes! The contract is open-source and can be deployed to other networks. However, you should thoroughly test the contract, understand the security implications, and consider auditing the code before deploying to production environments with real funds.