project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

μBlob

μBlob is an efficient market platform optimizing Ethereum blob data storage by merging small data pieces (μBlobs) into DA Blobs.

μBlob

Created At

ETHGlobal London

Winner of

trophy

Chiliz - Pool Prize

Prize Pool

trophy

Arbitrum - Qualifying Arbitrum Submissions

Prize Pool

trophy

ETHGlobal - 🏆 ETHGlobal London Finalist

Project Description

This platform enables anyone to submit μBlobs to a public auction in order to fill DA Blobs. The goal is to propose a new innovative infrastructure to maximize blobspace efficiency and enable a thousand rollup future and democratize DA access for NFT, and gaming projects!

An example flow:

  1. Project wants to use Ethereum blob as a DA, and requires only 10kb of data
  2. Project sends ETH to uBlob smart contract to gain credit points (0xdfBA2a12477B8AE3Ad99C98B7D902EA63C09D247 on holesky)
  3. Project creates a μBlob by submitting data, signature of the data with the credited wallet and a wei_per_gas_fee
  4. An auction based on the wei_per_gas_fee is in progress until the platform can create a Blob and submit it on Ethereum DA
  5. Once blob is submitted, anyone can check the composition of the submitted blob (which μBlobs, in which order are in the Blob). All the senders of the successful μBlobs credits are reduced by μBlob_size * wei_per_gas_fee. If sender does not have enough credit, its μBlob was not included in the Blob. If Blob submission fails, the Blob tx is updated until it is included by the Ethereum network.

Project contract, apis and frontend are deployed on Holesky testnet on https://ublob.net

Submitted Blob data format detail:

  • a Blob is made of a list of μBlobs put one after the other with the following format: header + μBlob data where:
    • header is `` size + signature` where size is uint32 (4 bytes) and signature (65 bytes)
    • ```` μBlob data` is the content of the μBlob

Next improvements:

  • Support multiple DA engine (Ethereum mainnet, Celestia, Avail etc.) and propose μBlob creators to select their DA target(s). Each DA would have its own independent μBlob auction.
  • Decentralize the project by creating a network of validators performing the auctions in a permissionless manner (with shared mempool of μBlob and consensus on auction and verification of blob submissions)
  • Allow crediting in ERC20.
  • Deploy to mainnet.

How it's Made

μBlob is made of several components:

  1. Golang backend made of 2 services
  • exposing a REST API to handle μBlobs CRUD operations
  • managing the μBlobs auction
  • crafting the Blob by merging μBlobs
  • managing the Blobs submissions, or submission updates if necessary
  • indexing the crediting operations made to the credit contract for accounting
  1. A react ts frontend available at https://ublob.net:
  • displays the current auction state, with live animations to render bidding updates and creations
  • displays the list of submitted blobs and their completion
  • displays the blobs data
  • displays the blobs' μBlobs with easy to use widgets
  1. An orchestrator service, creating many random μBlobs to simulate activity on testnet

  2. A credit Solidity smart contract, that emits Crediting event when receiving ETH and forwards the ETH value to the project address.

  3. Documentation on the project README.md

background image mobile

Join the mailing list

Get the latest news and updates