elements. We need to translate the text inside, keeping HTML structure.
Let's translate paragraph by paragraph.
First paragraph: "An attacker drained roughly $11.86 million in USDC from Ostium, a perpetuals exchange on Arbitrum, on July 15, using a single transaction that exploited the platform's custom price oracle. The exploit delivered a fabricated BTC/USD price — $5,000 to open a position and about $60,000 to close it — through a batch of 20 calls. Ostium has not yet confirmed the full extent of the loss, and the figure is provisional."
Translation: "Un attaquant a siphonné environ 11,86 millions de dollars en USDC d'Ostium, un échange de perpétuels sur Arbitrum, le 15 juillet, en utilisant une seule transaction qui exploitait l'oracle de prix personnalisé de la plateforme. L'exploit a fourni un prix BTC/USD fabriqué — 5 000 $ pour ouvrir une position et environ 60 000 $ pour la fermer — via un lot de 20 appels. Ostium n'a pas encore confirmé l'étendue complète de la perte, et le chiffre est provisoire."
We need to keep numbers and facts. Note: "$11.86 million" -> "11,86 millions de dollars" in French, with comma as decimal separator. "USDC" is a proper noun, keep as is. "perpetuals exchange" -> "échange de perpétuels" or "plateforme de perpétuels". I'll use "échange de perpétuels". "custom price oracle" -> "oracle de prix personnalisé". "fabricated" -> "fabriqué" or "falsifié". I'll use "fabriqué". "batch of 20 calls" -> "lot de 20 appels".
Second paragraph: "The transaction used executeBatch, alternating between Ostium's Trading contract and the OstiumPrivatePriceUpKeep contract, which delivers signed prices on-chain. The attacker targeted the BTC/USD pair (pairIndex 0) specifically. The wallet had opened its first position minutes earlier with a rounding-error deposit, a sign the attack was premeditated."
Translation: "La transaction a utilisé executeBatch, alternant entre le contrat Trading d'Ostium et le contrat OstiumPrivatePriceUpKeep, qui fournit des prix signés sur la chaîne. L'attaquant a ciblé spécifiquement la paire BTC/USD (pairIndex 0). Le portefeuille avait ouvert sa première position quelques minutes plus tôt avec un dépôt d'erreur d'arrondi, un signe que l'attaque était préméditée."
Note: "executeBatch" is a function name, keep as is. "Trading contract" -> "contrat Trading" (maybe "contrat de trading" but it's a specific contract, so "contrat Trading" is fine). "OstiumPrivatePriceUpKeep" is a contract name, keep as is. "on-chain" -> "sur la chaîne" or "en chaîne". I'll use "sur la chaîne". "pairIndex" is a technical term, keep as is.
Third paragraph: "Ostium is a decentralized perpetuals exchange for real-world assets — stocks, commodities, indices, currencies — built on Arbitrum. It uses a pull-based oracle system: Stork Network for real-world asset feeds and Chainlink Data Streams for crypto feeds. The project raised $3.5 million in a 2023 seed round led by General Catalyst and LocalGlobe, and a $20 million Series A in December 2025 co-led by General Catalyst and Jump Crypto, totaling about $27.8 million. As of December 2025, Ostium advertised over $25 billion in cumulative trading volume, including roughly $5 billion in metals. DefiLlama showed its TVL near $63 million on the day of the exploit."
Translation: "Ostium est un échange décentralisé de perpétuels pour les actifs du monde réel — actions, matières premières, indices, devises — construit sur Arbitrum. Il utilise un système d'oracle basé sur le pull : Stork Network pour les flux d'actifs du monde réel et Chainlink Data Streams pour les flux crypto. Le projet a levé 3,5 millions de dollars lors d'un tour de table de seed en 2023 mené par General Catalyst et LocalGlobe, et une Série A de 20 millions de dollars en décembre 2025 co-dirigée par General Catalyst et Jump Crypto, totalisant environ 27,8 millions de dollars. En décembre 2025, Ostium annonçait un volume de transactions cumulé de plus de 25 milliards de dollars, dont environ 5 milliards de dollars en métaux. DefiLlama montrait sa TVL près de 63 millions de dollars le jour de l'exploit."
Note: "real-world assets" -> "actifs du monde réel". "stocks, commodities, indices, currencies" -> "actions, matières premières, indices, devises". But in the original it says "currencies" which is "devises". "pull-based oracle system" -> "système d'oracle basé sur le pull" or "système d'oracle de type pull". I'll use "système d'oracle basé sur le pull". "Stork Network" and "Chainlink Data Streams" are proper nouns, keep. "seed round" -> "tour de table de seed" or "tour de seed". "Series A" -> "Série A". "cumulative trading volume" -> "volume de transactions cumulé". "TVL" is total value locked, keep as TVL. "metals" -> "métaux".
Fourth paragraph: "L'exploit ressemble à l'exploit du stablecoin Resolv USR en mars, où un rôle privilégié unique pouvait frapper sans limites sur la chaîne. Dans les deux cas, un composant de confiance — ici l'oracle de prix, là un rôle de minting — a été abusé. L'échec exact d'autorisation chez Ostium n'a pas été confirmé, et le total des pertes réconcilié est encore en attente."
Wait, the original: "The exploit bears a resemblance to the Resolv USR stablecoin exploit in March, where a single privileged role could mint without on-chain limits. In both cases, a trusted component — here the price oracle, there a minting role — was abused. The exact authorization failure at Ostium hasn't been confirmed, and the reconciled total loss is still pending."
Translation: "L'exploit ressemble à l'exploit du stablecoin Resolv USR en mars, où un rôle privilégié unique pouvait frapper sans limites sur la chaîne. Dans les deux cas, un composant de confiance — ici l'oracle de prix, là un rôle de minting — a été abusé. L'échec exact d'autorisation chez Ostium n'a pas été confirmé, et le total de pertes réconcilié est encore en attente."
Note: "bears a resemblance" -> "ressemble". "privileged role" -> "rôle privilégié". "mint" -> "frapper" in the context of minting tokens, but in French "minter" or "frapper" is used. I'll use "minter" or "frapper". Actually "mint" is often translated as "minter" in crypto context. I'll use "minter" but maybe "frapper" is more common? I'll use "minter" as it's a technical term. However, the original says "could mint" meaning "pouvait minter" or "pouvait frapper". I'll use "pouvait minter". Also "on-chain limits" -> "limites sur la chaîne". "authorization failure" -> "échec d'autorisation". "reconciled