Skip to content
shelby-quickstart logo

Shelby Protocol Quickstart

shelby-quickstart

Use when getting started with Shelby Protocol for the first time. Guides through initial setup, token acquisition, account funding, first upload, and choosing between CLI/SDK/media player. Invoke when user is new to Shelby, needs onboarding, or asks "how to start with Shelby", "Shelby setup", or ...

mattnigh/skills_collection0installs24stars

SKILL.md

Full skill instructions

Shelby Protocol Quickstart

Purpose

This skill provides comprehensive onboarding for developers new to the Shelby Protocol, a decentralized blob storage network built on Aptos blockchain. It guides users through initial setup, choosing the right tools, and completing their first upload to Shelby's decentralized storage.

When to Use

This skill should be invoked when:

  • User asks "how do I get started with Shelby?"
  • User mentions "Shelby setup", "Shelby onboarding", or "new to Shelby"
  • User wants to understand Shelby Protocol basics
  • User needs help choosing between CLI, SDK, or media player
  • User is setting up Shelby for the first time
  • User asks about token requirements or account funding
  • User needs a walkthrough of their first upload
  • User wants to understand the Shelby ecosystem

Process

1. Understanding Shelby Protocol

Explain what Shelby is:

Shelby is a decentralized hot storage network built on Aptos blockchain, designed for read-heavy workloads like:

  • Video streaming - Adaptive HLS/​DASH streaming
  • AI training - Large dataset storage and retrieval
  • Data analytics - Distributed data pipelines
  • Decentralized CDN - Content delivery with censorship resistance

Key features:

  • Read-based incentives - Payment for reads ensures storage provider quality
  • Dedicated infrastructure - Private fiber networks for consistent performance
  • Data integrity - Novel auditing system verifies data correctness
  • Efficient erasure coding - Reduces costs while maintaining redundancy
  • Aptos blockchain - High throughput, low finality coordination layer

2. Token System Overview

Two token types required:

  1. Aptos Tokens (APT)

    • Used for gas fees on transactions
    • Required for all blockchain operations
    • Acquired via Aptos faucet
  2. ShelbyUSD Tokens

    • Used for Shelby operations (upload fees, storage payments)
    • Required for uploading blobs
    • Acquired via Shelby faucet

Important: You need BOTH token types to upload files.

3. Choosing Your Path

Help user select the right tool based on their use case:

Path A: CLI Tool (Command Line)

Best for:

  • Manual file uploads and management
  • Quick testing and prototyping
  • DevOps and automation scripts
  • Users comfortable with terminal

Pros:

  • Simple setup with npm install
  • No coding required for basic operations
  • Built-in commands for all operations
  • Easy account and context management

Next step: Guide to shelby-cli-helper skill

Path B: TypeScript SDK (Programmatic)

Best for:

  • Node.js or browser applications
  • Programmatic blob management
  • Custom integrations and workflows
  • Building applications on Shelby

Pros:

  • Full programmatic control
  • Type-safe TypeScript interface
  • Works in Node.js and browsers
  • Suitable for production applications

Next step: Guide to shelby-sdk-integration skill

Path C: Media Player (React Video)

Best for:

  • Video streaming applications
  • React applications with video playback
  • Building video platforms
  • Adaptive streaming (HLS/​DASH)

Pros:

  • Pre-built React components
  • Shaka Player integration
  • Custom control layouts
  • TailwindCSS styling

Next step: Guide to shelby-media-player skill

Path D: All of the Above (Full Stack)

Best for:

  • Complete video streaming platforms
  • Applications with admin and user interfaces
  • Teams needing multiple access methods

Next step: Guide through all three progressively

4. CLI Quickstart (Most Common Path)

Step-by-step first-time setup:

4.1 Install CLI
npm i -g @shelby-protocol/​cli

Verify installation:

shelby --version
4.2 Initialize Configuration
shelby init

This creates ~/​.shelby/​config.yaml and prompts for API key (optional but recommended).

4.3 Check Contexts and Accounts
shelby context list
shelby account list

You should see shelbynet context and default account.

4.4 Fund Your Account with Aptos Tokens

Using Aptos CLI (install if needed: brew install aptos):

aptos account fund-with-faucet --profile shelby-alice --amount 1000000000000000000

Or manually via Aptos faucet at https://faucet.testnet.aptoslabs.com/

4.5 Fund Your Account with ShelbyUSD Tokens
shelby faucet --no-open

This opens the Shelby faucet in your browser. Follow the prompts to fund your account.

4.6 Verify Account Balance
shelby account balance

You should see both Aptos and ShelbyUSD token balances > 0.

4.7 Upload Your First File

Create a test file:

echo "Hello, Shelby!" > test.txt

Upload to Shelby:

shelby upload test.txt files/​hello.txt -e tomorrow --assume-yes

Parameters explained:

  • test.txt - Local source file
  • files/​hello.txt - Blob name in Shelby storage
  • -e tomorrow - Expiration date (file expires tomorrow)
  • --assume-yes - Skip confirmation prompt
4.8 Verify Upload
shelby account blobs

You should see files/​hello.txt in your blob list.

4.9 Download File (Optional)
shelby download files/​hello.txt downloaded.txt
cat downloaded.txt

Success! You've completed your first Shelby upload/​download cycle.

5. SDK Quickstart (For Developers)

Step-by-step programmatic setup:

5.1 Create New Project
mkdir shelby-demo
cd shelby-demo
npm init -y
npm install typescript @types/​node tsx -D
npm install @shelby-protocol/​sdk @aptos-labs/​ts-sdk
5.2 Create Upload Script

Create upload.ts:

import { Network, Ed25519PrivateKey, Account } from '@aptos-labs/​ts-sdk';
import { ShelbyNodeClient } from "@shelby-protocol/​sdk/​node";
import fs from 'fs';

async function main() {
  // Initialize client
  const client = new ShelbyNodeClient({
    network: Network.SHELBYNET
  });

  // Setup authentication (get private key from shelby CLI config)
  const privateKey = new Ed25519PrivateKey(process.env.SHELBY_PRIVATE_KEY!);
  const account = Account.fromPrivateKey({ privateKey });

  // Read file
  const blobData = fs.readFileSync('./​test.txt');
  const blobName = 'sdk-test/​hello.txt';

  // Calculate expiration (30 days)
  const expirationMicros = (1000 * 60 * 60 * 24 * 30 + Date.now()) * 1000;

  // Upload
  console.log('Uploading to Shelby...');
  await client.upload({
    signer: account,
    blobData,
    blobName,
    expirationMicros
  });

  console.log(`✅ Uploaded as: ${blobName}`);
  console.log(`Access at: https://api.shelbynet.shelby.xyz/​shelby/​blobs/​${blobName}`);
}

main().catch(console.error);
5.3 Get Private Key

Extract from Shelby CLI config:

cat ~/​.shelby/​config.yaml | grep privateKey

Add to .env:

echo "SHELBY_PRIVATE_KEY=<your-key>" > .env
5.4 Run Upload
echo "Hello from SDK!" > test.txt
npx tsx upload.ts

Success! You've uploaded programmatically.

6. Media Player Quickstart (For React Apps)

Step-by-step video player setup:

6.1 Create React App (or use existing)
npx create-next-app@latest shelby-player
cd shelby-player
6.2 Install Dependencies
npm install @shelby-protocol/​player tailwindcss@4
6.3 Configure TailwindCSS

Add to app/​globals.css:

@source "@shelby-protocol/​player";
6.4 Create Video Player Component

Create components/​VideoPlayer.tsx:

import { SimpleShakaVideoPlayer } from '@shelby-protocol/​player';

export function VideoPlayer() {
  return (
    <SimpleShakaVideoPlayer
      src="https://api.shelbynet.shelby.xyz/​shelby/​blobs/​videos/​demo.m3u8"
      poster="/​poster.jpg"
      title="Demo Video"
    />
  );
}
6.5 Use in Page

Update app/​page.tsx:

import { VideoPlayer } from '@/​components/​VideoPlayer';

export default function Home() {
  return (
    <main className="container mx-auto py-8">
      <h1 className="text-3xl font-bold mb-4">My Shelby Video Player</​h1>
      <VideoPlayer />
    </​main>
  );
}
6.6 Run Development Server
npm run dev

Success! You have a working video player.

7. Next Steps and Learning Resources

After completing quickstart:

  1. Explore the Explorer

  2. Read Documentation

  3. Advanced Topics

    • Multipart uploads for large files
    • Session management and micropayment channels
    • Custom video encoding for HLS/​DASH
    • Storage provider economics
    • Erasure coding and data redundancy
  4. Join Community

Output Format

When guiding users through quickstart:

  1. Assess experience level - Understand their background and goals
  2. Recommend appropriate path - CLI, SDK, or media player
  3. Provide step-by-step instructions - Clear, numbered steps
  4. Verify each step - Show commands to confirm success
  5. Troubleshoot issues - Help resolve common problems
  6. Guide to next steps - Recommend advanced topics or skills

Best Practices

For All Users

  • Start simple - Begin with CLI even if planning to use SDK
  • Test with small files - Don't start with large video uploads
  • Use test tokens - These are testnet/​development tokens
  • Save credentials securely - Never commit private keys
  • Monitor balances - Check before large uploads

For CLI Users

  • Use meaningful blob names - Path-like structure helps organization
  • Set appropriate expiration - Match business requirements
  • Verify uploads - Always check with shelby account blobs
  • Automate with scripts - Use bash for batch operations

For SDK Users

  • Use environment variables - For keys and configuration
  • Implement error handling - Handle token and network errors
  • Type your code - Use TypeScript for better DX
  • Test thoroughly - Verify uploads in explorer

For Media Player Users

  • Optimize videos - Use HLS/​DASH adaptive streaming
  • Provide poster images - Better user experience
  • Test on devices - Mobile and desktop
  • Handle errors gracefully - Show user-friendly messages

Examples

Example 1: Complete Beginner

User: "I'm new to Shelby. How do I start?"

Response:

Welcome to Shelby! Let me guide you through your first upload.

What is Shelby? Shelby is a decentralized storage network built on Aptos blockchain, perfect for video streaming, AI training data, and data analytics.

Quickest Path: CLI Tool

  1. Install CLI:

    npm i -g @shelby-protocol/​cli
    
  2. Initialize:

    shelby init
    
  3. Fund account (you'll need both token types):

    # Aptos tokens for gas
    aptos account fund-with-faucet --profile shelby-alice --amount 1000000000000000000
    
    # ShelbyUSD for uploads
    shelby faucet --no-open
    
  4. Upload a test file:

    echo "Hello, Shelby!" > test.txt
    shelby upload test.txt files/​hello.txt -e tomorrow --assume-yes
    
  5. Verify:

    shelby account blobs
    

Next Steps:

  • View your blobs at https://explorer.shelby.xyz
  • Explore programmatic access with the TypeScript SDK
  • Build video streaming apps with the media player

Example 2: Web Developer

User: "I want to build a video streaming platform with Shelby"

Response:

Great! For a video streaming platform, you'll need:

  1. CLI - To upload videos to Shelby
  2. SDK - For programmatic management in your backend
  3. Media Player - For video playback in your frontend

Path Forward:

Phase 1: Setup (15 min)

  1. Install and configure Shelby CLI
  2. Fund your account with tokens
  3. Upload a test video

Phase 2: Backend (1-2 hours)

  1. Install TypeScript SDK
  2. Create upload service
  3. Store blob metadata in your database

Phase 3: Frontend (1-2 hours)

  1. Install Shelby media player
  2. Create video player component
  3. Build playlist/​gallery UI

Let's start with Phase 1. Do you have Node.js installed?

Example 3: DevOps Engineer

User: "I need to automate video uploads to Shelby"

Response:

Perfect! The Shelby CLI is ideal for automation.

Setup:

npm i -g @shelby-protocol/​cli
shelby init

Fund Account:

shelby faucet --no-open  # Get ShelbyUSD
aptos account fund-with-faucet --profile shelby-alice --amount 1000000000000000000

Automation Script Example:

#!/​bin/​bash
# upload-videos.sh

VIDEOS_DIR="/​path/​to/​videos"
EXPIRATION="90 days"

for video in "$VIDEOS_DIR"/​*.mp4; do
  filename=$(basename "$video")
  blob_name="videos/​$(date +%Y-%m-%d)_$filename"

  echo "Uploading: $filename"
  shelby upload "$video" "$blob_name" -e "$EXPIRATION" --assume-yes

  if [ $? -eq 0 ]; then
    echo "✅ Success: $blob_name"
  else
    echo "❌ Failed: $filename"
  fi
done

# Verify all uploads
shelby account blobs

Schedule with cron:

0 2 * * * /​path/​to/​upload-videos.sh >> /​var/​log/​shelby-uploads.log 2>&1

Common Issues and Solutions

Issue: "shelby: command not found"

Solution: CLI not installed. Run npm i -g @shelby-protocol/​cli

Issue: "Insufficient ShelbyUSD tokens"

Solution: Fund via faucet: shelby faucet --no-open

Issue: "Insufficient gas"

Solution: Fund with Aptos tokens via Aptos faucet

Issue: "Configuration not found"

Solution: Run shelby init to create config

Issue: "Upload succeeded but can't see blob"

Solution: Check expiration date - may have already expired

Issue: "Network error"

Solution: Check internet connection and API endpoint availability

Issue: "Private key error in SDK"

Solution: Ensure key is valid Ed25519 format from Shelby config

Notes

Related Skills

Once comfortable with basics, explore:

  • shelby-cli-helper - Advanced CLI operations and troubleshooting
  • shelby-sdk-integration - Building applications with TypeScript SDK
  • shelby-media-player - React video player integration and customization

Resources

More skills from mattnigh

spring-framework-patterns logo
mattnigh/skills_collection

spring-framework-patterns

Comprehensive Spring Framework and Spring Boot best practices including dependency injection patterns, bean lifecycle and scopes, REST API development, Spring Data JPA, service layer design, Spring Security, testing strategies, caching, AOP, async processing, error handling, and common anti-patte...

24 0
View

TypeScript厳格モードによる型安全性設計を専門とするスキル。 📖 参照書籍: - 『Effective TypeScript』(Dan Vanderkam): 型設計 📚 リソース参照: - `resources/Level1_basics.md`: レベル1の基礎ガイド - `resources/Level2_intermediate.md`: レベル2の実務ガイド - `resources/Level3_advanced.md`: レベル3の応用ガイド - `resources/Level4_expert.md`: レベル4の専門ガイド - `resources/di...

24 0
View
deploying-cloud-k8s logo
mattnigh/skills_collection

deploying-cloud-k8s

Deploys applications to cloud Kubernetes (AKS/GKE/DOKS) with CI/CD pipelines. Use when deploying to production, setting up GitHub Actions, troubleshooting deployments. Covers build-time vs runtime vars, architecture matching, and battle-tested debugging.

24 0
View
moai-alfred-agent-guide logo
mattnigh/skills_collection

moai-alfred-agent-guide

19-agent team structure, decision trees for agent selection, Haiku vs Sonnet model selection, and agent collaboration principles. Use when deciding which sub-agent to invoke, understanding team responsibilities, or learning multi-agent orchestration.

24 0
View
mermaid-diagram-generator logo
mattnigh/skills_collection

mermaid-diagram-generator

Converts architecture descriptions, module specs, or workflow docs into Mermaid diagrams. Use when visualizing brick module relationships, workflows (DDD, investigation), or system architecture. Supports: flowcharts, sequence diagrams, class diagrams, state machines, entity relationship diagrams,...

24 0
View
pre-flight-check logo
mattnigh/skills_collection

pre-flight-check

INVOKE FIRST before any code work. Validates git workflow (branch, issue, worklog) and checks approach. Use at START of every task and END before completing. Prevents skipped steps.

24 0
View
browser-dev-tools logo
mattnigh/skills_collection

browser-dev-tools

This skill should be used when working with browser-rendered artifacts (i.e. Bun, React/React Native) to proactively validate that development work on localhost is being built appropriately and to support debugging browser-rendered content. Use this skill after making frontend changes to verify t...

24 0
View
lead-dev logo
mattnigh/skills_collection

lead-dev

Lead Développeur - Coordination technique opérationnelle, code review, mentoring et livraison. Pair de web-dev-process au niveau OPÉRATIONS.

24 0
View
worker-monitor logo
mattnigh/skills_collection

worker-monitor

Monitor Docker workers, RQ queue health, and auto-scale workers (max 4). Use when: checking job progress, monitoring queue depth, scaling workers up/down, diagnosing slow processing, or waiting for jobs to complete. Referenced by data-quality skill during reprocessing.

24 0
View
quality-advisor logo
mattnigh/skills_collection

quality-advisor

Proactive quality guidance system that monitors artifact creation and provides real-time feedback on documentation quality

24 0
View
bump-version logo
mattnigh/skills_collection

bump-version

This skill should be used when the user wants to bump the version number in the workspace. It updates versions across all pyproject.toml files (root, tde, and tda packages) and the CHANGELOG.md to keep them synchronized.

24 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View