Protocol Specifications

An overview of the protocol

High Level

Indexing Mechanics

Blobscriptions protocol is an extension of the Ethscriptions protocol utilizing ESIP-8 proposal. The protocol state is determined by indexing all Ethereum transcations in order, starting with transactions that carries the "blobs" sidecars and proceeding from there sequentially in order of block number and transaction index within the block.

The genesis Blobscriptions on chain is https://blobscan.com/tx/0x4a2984e01e2cea4e4cc057e8f496bbe5d9a7a2f99c5f9ac7b1e8280c64958f0b

Creating Blobscriptions

Creating an Blobscriptions in Javascript:

You can use the cbor package and Viem's toBlobs:

import { toBlobs } from "viem"
import { loadKZG } from "kzg-wasm"
import * as cbor from "borc"


const transfer_json = JSON.stringify(transferToken(ticker, transfer))
const blob20blobscription = cbor.encode({
    contentType: "application/json",
    content: transfer_json,
})
const blobs = toBlobs({ data: blob20blobscription })

From EOA

Any successful Ethereum transaction whose input data has the parameter rule=esip6 and the transaction does include blobs. The blobs are concatenated and interpreted as an untagged CBOR object (as defined by RFC 8949) that decodes into a hash with exactly these keys:

  • content

  • contentType

If the concatenated data is a valid CBOR object, and that object decodes into a hash with exactly those two fields, a Blobscritpion is created.

Note:

  • There is no uniqueness requirement for the attachment's content and/or contentType.

  • Attachment content, contentType, and the container CBOR object itself can each be optionally gzipped with a maximum compression ratio of 10x.

  • The attachment is not valid if:

    • If the CBOR object has a tag

    • If the decoded object his not a hash

    • If the decoded hash's keys aren't exactly content and contentType. There cannot be extra keys.

    • The values of content and contentType aren't both strings (either binary or UTF-8).

Currently there's no plugin wallets that supports EOA sending a EIP-4844 transaction that carries blobs. A web app simple wallet that supports this is https://blobscriptions.glypher.io/ or https://wallet.blob20.pro/.

Last updated