Documentation

HoodShare Developer Docs

Everything you need to build on HoodShare. API reference, core concepts, and quickstart guides.

Overview

HoodShare is a fast text, code, and media sharing tool with built-in QR codes and URL shortening, plus an optional token gate for Hood Chain - Robinhood's AI-native Layer 2 built on Arbitrum tech.

Every share gets a random, unguessable short ID and is stored with a TTL you choose (1 day up to 90 days). There's no wallet or blockchain step required to create a basic share - the token gate is an optional layer for higher rate limits and extended expiration.

Key capabilities

Instant sharing

Short IDs generated on creation. The API itself needs no sign-up; the web app requires signing in.

TTL-based storage

Every share expires automatically between 1 and 90 days.

RobinHood Chain gating

Optional $HSHARE balance check for higher tiers and rate limits.

Plain REST API

JSON over HTTP - no SDK, no client library required.

URL shortener

Short links with click tracking, 90-day expiry.

QR code generation

Generate QR codes for any HoodShare route.

Quick Start

Create your first share in under a minute. The web app requires signing in with email or a wallet; calling the API directly does not.

1

Sign in

Navigate to /app and sign in with email or a wallet.

2

Write or paste content

Enter your content in the editor. Markdown gets a live preview. Code preserves formatting and indentation.

3

Choose expiration

Select a TTL: 1 day, 1 week, 1 month, or 3 months. Content is removed after expiration.

4

Create share

Click Create Share or press Ctrl/Cmd + Enter. You get a short URL and QR code instantly.

Connect a RobinHood Chain wallet to unlock token-gated features like extended expiration, higher QR resolution, and analytics.

Core Concepts

Share IDs

Every share gets a random 12-character ID (e.g. 7nE7yfQx3kLm) generated server-side - not derived from your content or wallet, so it can't be guessed or enumerated.

Storage & expiration

Shares are stored in Redis (Upstash) as JSON with a TTL matching the expiration you pick at creation time - 1 day up to 90 days. Once the TTL elapses, Redis evicts the key and the share is gone; there is no separate delete step and no permanent archive.

Storage record shape
{
  id: string;
  format: "text" | "markdown" | "code" | "media";
  content: string | null;
  fileUrl?: string | null;   // media shares only
  creatorAddress: string | null; // RobinHood Chain wallet, optional
  createdAt: number;  // ms epoch
  expiresAt: number;  // ms epoch
}

Media uploads

Images, video, audio, and PDFs are uploaded via UploadThing rather than stored inline in Redis. The share record keeps a reference to the file URL and expires the same way as text shares.

API Reference

HoodShare exposes a JSON REST API for creating shares, retrieving content, and shortening URLs. All endpoints accept and return application/json.

Create Share

POST/api/share

Creates a new content share and returns a short ID. The content is stored and assigned a unique URL.

ParameterTypeDescription
contentrequiredstringThe content to share. Text, Markdown, or code.
formatstring"text", "markdown", or "code". Defaults to "text".
expiresInnumberTTL in seconds. Clamped between 1-90 days.
creatorAddressstringRobinHood Chain wallet address of the creator. Optional.
Request
curl -X POST https://hoodshare.xyz/api/share \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Hello, permanent web.",
    "format": "text",
    "expiresIn": 604800
  }'
Response 200
{
  "id": "7nE7yf"
}

The share is accessible at https://hoodshare.xyz/s/7nE7yf.

Retrieve Content

GET/api/get/:id

Returns the stored share object by ID. Returns 404 if the share has expired or does not exist.

Request
curl https://hoodshare.xyz/api/get/7nE7yf
Response 200
{
  "content": "Hello, permanent web.",
  "format": "text",
  "createdAt": 1705312200000,
  "expiresAt": 1705917000000,
  "creatorAddress": null
}

Shorten URL

POST/api/shorten

Creates a short redirect URL for any valid HTTP/HTTPS link.

ParameterTypeDescription
urlrequiredstringThe target URL to shorten. Must start with http:// or https://.
Response 200
{
  "id": "abc123",
  "originalUrl": "https://example.com/very/long/path",
  "shortUrl": "https://hoodshare.xyz/l/abc123",
  "createdAt": 1705312200000,
  "clicks": 0
}

Verify Access

POST/api/agent/verify

Checks a wallet's $HSHARE balance and returns its access tier. Use this to authenticate a script or client and determine its rate limit before calling the other endpoints.

ParameterTypeDescription
walletAddressrequiredstringRobinHood Chain wallet address to verify.
Response 200
{
  "success": true,
  "tier": "pro",
  "balance": 750000,
  "rateLimit": 1000,
  "features": {
    "shareExpiration": 180,
    "qrSize": 1200,
    "urlShortener": true,
    "analytics": true,
    "prioritySupport": false
  },
  "message": "Agent verified: pro tier"
}

API Access

There's no client library or SDK to install. Anything that can make an HTTP request - a script, a cron job, a backend service - can call the API directly.

Config reference

config.json
{
  "name": "hoodshare",
  "description": "Instant text, code, and media sharing on RobinHood Chain",
  "endpoint": "https://hoodshare.xyz/api",
  "capabilities": ["share", "retrieve", "shorten"],
  "auth": {
    "type": "wallet",
    "verify": "/api/agent/verify"
  }
}

Rate Limits

API rate limits are determined by the caller's $HSHARE token balance. Verify a wallet to check its current tier.

TierBalanceRate LimitFeatures
Free< 5M100 req/hrBasic share, 90-day expiry
Pro5M+1,000 req/hr180-day expiry, analytics
Premium10M+10,000 req/hr365-day expiry, priority support

Tools

Share Content

The primary tool. Paste text, Markdown, or code into the editor at /app. Choose a format, set expiration, and create a permanent share. The share URL and QR code are generated immediately.

Supported formats: Plain Text, Markdown (with live preview), Code (preserves indentation).

QR Code Generator

Generate QR codes for any URL at /qr-generator. Useful for bridging physical and digital content - print a QR that points to a permanent HoodShare share.

URL Shortener

Shorten any URL at /url-shortener. Returns a clean hoodshare.xyz/l/... redirect with click tracking. Also available via the POST /api/shorten endpoint.

Access Control

Token Gate

HoodShare can require a minimum $HSHARE token balance to access premium features. When enabled, the app checks the connected wallet's token balance against configured thresholds.

In development mode, the token gate is disabled and all features are available. In production, access is determined by wallet balance with three tiers: Free, Pro, and Premium.

Wallet Integration

HoodShare connects to any injected EVM wallet (MetaMask, Rabby, and others) via eth_requestAccounts. Connect your wallet from the app to unlock gated features tied to your $HSHARE balance on RobinHood Chain.

FAQ

Do viewers need a wallet to read shared content?

No. Any share link is publicly viewable. A wallet is only needed to create shares with token-gated perks (extended expiration, higher QR resolution, analytics).

Can I delete a share after creating it?

Shares expire automatically based on the TTL you select. Manual deletion is not supported in the current version. Use shorter expiration times for sensitive content.

What happens when a share expires?

Redis evicts the record once its TTL elapses and the share URL starts returning 404. There's no archive or recovery after that - export anything you need to keep before it expires.

Is there a content size limit?

Text shares are limited to reasonable sizes for performance. For large file uploads, use the media uploader which leverages UploadThing for storage.

How do scripts authenticate?

By verifying a wallet address via the /api/agent/verify endpoint. The response includes the tier, rate limit, and available features based on $HSHARE balance.

What about content moderation?

Each share page includes a report mechanism. Content that violates the terms of service can be flagged and removed according to the platform policy.

Need help? Reach out on X / Twitter or open an issue in the repository.