atproto-cid

Validate AT Protocol CIDs against DASL subset constraints.

46|3|Updated Apr 21, 2026
One-click install
npx skills add https://github.com/ngerakines/atproto-skills --skill atproto-cid
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: atproto-cid
Source: https://github.com/ngerakines/atproto-skills/tree/main/skills/atproto-cid
Command: npx skills add https://github.com/ngerakines/atproto-skills --skill atproto-cid

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

This skill validates AT Protocol/DASL CIDs to ensure they conform to the DASL subset (CIDv1, dag-cbor or raw codecs, SHA-256 or BDASL when enabled, 32-byte digest, base32lower string form) and helps reason about their representations and interop across languages.

Core Features & Use Cases

  • Supports parsing, construction, and verification workflows for DASL CIDs in Rust, TypeScript, and Go.
  • Handles JSON $link and DAG-CBOR tag-42 wire forms, with cross-language guidance and canonical encoding rules.
  • Provides a strict gate for DASL validation to prevent non-DASL CIDs from entering AT Protocol pipelines and to guide cross-language interoperability.

Quick Start

Validate a sample AT Protocol CID string to ensure it passes the DASL constraints.

Frequently Asked Questions about atproto-cid

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I validate AT Protocol CID strings for DASL conformance?▼

To validate AT Protocol CID strings for DASL conformance, enforce the 36-byte binary layout using CIDv1, dag-cbor or raw codecs, SHA-256 hashes, and base32lower string encoding. This skill checks these constraints and reports precise errors on any violations.

What is the correct binary layout for a DASL CID in AT Protocol?▼

The correct DASL CID binary layout is a strict 36-byte structure using CID version 1, codec 0x55 or 0x71, hash code 0x12 or 0x1e when BDASL is enabled, and a 32-byte digest. Any deviation from this layout fails DASL validation.

How do I parse DAG-CBOR tag-42 wire forms and JSON $link representations across languages?▼

Parsing DAG-CBOR tag-42 wire forms and JSON $link representations across Rust, TypeScript, and Go requires canonical encoding rules for cross-language interoperability. This skill provides the necessary parsing logic and cross-language guidance to safely handle these formats.

Can I use DASL CIDs to ensure safe cross-language usage between Rust, TypeScript, and Go?▼

Yes, you can use DASL CIDs to ensure safe cross-language usage between Rust, TypeScript, and Go. By strictly validating against the DASL subset, it prevents non-DASL CIDs from entering AT Protocol pipelines and guides cross-language interoperability.

Why does my AT Protocol CID fail DASL validation during cross-language transfer?▼

An AT Protocol CID fails DASL validation during cross-language transfer if it violates the 36-byte binary layout, uses unsupported codecs or hash codes, or lacks proper base32lower string encoding. The validation process reports precise errors to identify the specific constraint failure.

When do I need to enable BDASL hash codes for DASL CID validation?▼

You need to enable BDASL hash codes for DASL CID validation when your AT Protocol implementation requires the 0x1e hash code alongside the standard 0x12 SHA-256 hash. Enabling BDASL ensures the 32-byte digest conforms to the specific DASL subset rules.