---
# System prepended metadata

title: 'CIP-x: Canonical Blob API v1'

---

# CIP-x: Canonical Blob API v1

## Abstract
This CIP proposes the development of a canonical API specification, hereby referred to as v1 (or canoncial Blob API v1), to address the limitations and user experience (UX) issues in the current node API (referred to as beta API). This new API will provide an abstract, high-level, implementation-independent specification alongside a concrete Interface Definition Language (IDL) or API definition.

## Motivation
- The initial API, developed prior to Celestia's launch, had limited user input, leading to an interface that may not align with the broader user requirements.
- Ambiguities in the current API's definition have resulted in edge cases with unexpected and confusing behavior, undermining the developer experience.
- The existing documentation does not sufficiently clarify the usage and behavior of the API, contributing to a subpar UX.
- Certain design decisions made during the initial API implementation prioritized elegance over practicality, leading to limitations in fundamental user interactions, such as signing transactions from various accounts.
- There is a need for a stable, reliable API that prioritizes user needs and establishes a clear expectation for developers interacting with Celestia's DA layer.

## Specification

This CIP will detail the structure of the canonical API, defining inputs, outputs, and behaviors in an abstract manner to facilitate understanding and implementation across different platforms and languages.


### Goals
- Define a clear and concise canonical API specification for v1.
- Provide a concrete IDL/API definition for reliable user interaction.
- Establish a transition plan from vBetaDA to v1, and a commitment to support the vBetaDA for some time.

### Canonical Blob API (v1)
- **Abstract Specification**: Define the conceptual framework and operations of the API without tying it to a particular implementation.
- **Concrete Specification**: Provide a detailed and precise IDL or API definition that users can implement in various environments.


### Abstract Specification of the canonical Blob API v1



### Versioning
- **Beta DA API (vBetaDA)**: The existing API will be designated as the beta version.
- **Canonical API (v1)**: The newly defined API will be version 1.

## Rationale
The canonical API aims to create a standardized and user-friendly interface that:
- Reflects actual user needs and common usage patterns.
- Offers clear and comprehensive documentation to prevent confusion and reduce the learning curve.
- Facilitates more robust and diverse user interactions by removing current limitations.
- Allows simple and efficient multi-language implementations for clients of the API.

## Backward Compatibility
- A strategy for deprecating vBetaDA in favor of v1 will be outlined, including a transition period during which both versions will be supported.
- Recommendations for updating existing integrations to the new API will be provided.

## Test Cases
Test cases will be developed to validate all aspects of the canonical API, ensuring that it behaves as expected across a variety of scenarios and edge cases.

## Implementation
A phased rollout plan for v1 will be proposed, starting with the abstract specification to allow early feedback and iterative refinement.

### Interface Definition Language (IDL)

#### Rationale Protobuf + gRPC

#### Type and Service Definitions


### Reference Implementation

(A reference implementation of the canonical API will be provided here.)


## Security Considerations
Any potential security implications introduced by the new API will be thoroughly evaluated.

## Copyright
All content herein is licensed under [license to be determined].
