All projects

Bruma Protocol

Parametric rainfall derivatives. On-chain, automated, open to anyone.

CRE & AI DeFi & Tokenization

What it is

Bruma Protocol

Bruma is a decentralized parametric rainfall derivatives protocol that lets anyone take a structured financial position on rainfall, priced fairly, settled automatically, and owned as an NFT.

Live App: https://bruma-protocol.vercel.app/
Mobile Friendly

The Problem
Rainfall risk is one of the most consequential and underserved risks in the world. Farmers lose harvests, energy producers face shortfalls, and event organizers absorb massive losses when weather doesn't cooperate. Traditional insurance is slow, opaque, and requires proof of loss. Financial derivatives for weather exist, but they are locked behind institutional desks, accessible only to large players with prime brokerage relationships. There is no open, permissionless market for rainfall risk.
What Bruma Does
Bruma lets any participant enter a bilateral index contract where payout is determined entirely by oracle-reported rainfall data for a specified location and observation window. A buyer pays a premium and acquires a position that pays out if a rainfall condition is met. The liquidity pool acts as the counterparty, collecting premiums and paying claims. No human assessment, no claims adjuster, no discretion.
There are two position types. A Call pays out when rainfall exceeds a strike level, protecting against floods or excess moisture. A Put pays out when rainfall falls below a strike level, protecting against drought. Both scale linearly through a spread range and cap at a maximum payout defined by the buyer at entry.
How It Works
A buyer requests a premium quote by submitting a location, observation window, strike, spread, and notional. Chainlink Functions prices the premium against 10 years of historical rainfall data and returns a quote valid for one hour. The buyer accepts, pays the premium, and receives an ERC-721 NFT representing their position. Collateral equal to the maximum possible payout is locked in an ERC-4626 vault at the moment of creation.
Once the observation window closes, anyone can trigger settlement. Chainlink Functions fetches the actual rainfall from Open-Meteo for the specified coordinates and period. The contract calculates the payout deterministically from the oracle reading and releases it to the position holder. No negotiation, no delay, no basis risk beyond the index itself.
The Capital Stack
Liquidity providers deposit WETH into the primary vault and earn premiums in exchange for bearing rainfall risk. A second layer, the ReinsurancePool, allows a separate class of capital providers to backstop the primary vault in extreme scenarios. Reinsurance LPs earn yield from premium sharing while their capital is idle and accept drawdown risk only when the vault approaches critical utilization.
Autonomous Risk Management
A Chainlink CRE workflow runs every hour as a live risk guardian. It reads vault metrics, fetches 7-day weather forecasts for every active position location, simulates expected losses, and acts autonomously. If expected losses approach a critical threshold, the guardian tightens vault limits and draws from the ReinsurancePool to pre-fund potential payouts before settlements arrive. A Groq AI model summarizes vault health in plain language via Chainlink Confidential HTTP, keeping API credentials secure inside a trusted execution environment.
Cross-Chain Payouts
Buyers on any chain can participate through the BrumaCCIPEscrow system. A personal escrow contract holds the NFT on Ethereum while the buyer lives on another chain. When settlement occurs, the CRE workflow detects it, claims the payout, and bridges it to the buyer via Chainlink CCIP automatically. A 7-day permissionless fallback ensures funds can never be permanently locked.
Why It Matters
Bruma is not insurance. It is a financial instrument for transferring rainfall index risk in a transparent, permissionless, and fully automated way. It opens a market that has never existed at this level of accessibility, turning one of the world's most pervasive physical risks into a tradeable, on-chain asset.

How it Works

How Bruma Protocol is Built
Bruma is an on-chain parametric rainfall derivatives protocol built on Ethereum (Sepolia testnet), with three main layers:
Core Contracts (Solidity/Foundry)

  • Bruma (ERC-721) — each position is a transferable NFT with parameters: strike, spread, notional, coordinates, and observation window
  • BrumaVault (ERC-4626) — liquidity pool that collects premiums and pays out on settlement; capped at 80% utilization
  • ReinsurancePool (ERC-4626) — secondary capital backstop that the Risk Guardian can draw from automatically when expected losses spike
    Chainlink Services
  • Chainlink Functions — fetches 10 years of historical rainfall to price premiums, and pulls actual settlement data from Open-Meteo
  • Chainlink Automation — permissionless fallback that ensures every expired position settles even if the CRE workflow is offline
  • Chainlink CCIP — routes payouts cross-chain via BrumaCCIPEscrow, so buyers on Avalanche receive their payout without modifying core contracts
  • Chainlink CRE (Runtime Environment) — the primary orchestration layer running two workflows:
    • Settlement Workflow (every 5 min) — drives expired positions through the full lifecycle
    • Vault Risk Guardian (every hour) — fetches weather forecasts, simulates expected losses, tightens vault limits, and triggers reinsurance draws autonomously
      Confidential Compute
      The Risk Guardian calls Groq's LLM for AI risk summaries via CRE Confidential HTTP — the API key is injected inside a TEE (Trusted Execution Environment) fetched from Chainlink's Vault DON, so it's never exposed in code, on-chain, or to node operators.
      The Position Lifecycle
      Quote (Chainlink Functions: historical data)
      → NFT minted + collateral locked
      → Observation window
      → CRE detects expiry → settle (Chainlink Functions: oracle rainfall)
      → Payout: same-chain pull or CCIP bridge cross-chain
      Built with Foundry (contracts) and Bun/TypeScript (CRE workflows).

Links

Created by

  • David Raigoza