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.