Describe the form.
Publish it forever.

Keep every response on Walrus. Private ones stay end-to-end encrypted.

Press Enter to generate.·Shift + Enter for a new line.·Skip and build manually

Android and iOS apps coming soon.

Built different.
Stored forever.

Every Scrolls form is a permanent record. No SaaS vendor to trust. No server to maintain.

Bug titleShort text
SeverityDropdown
ScreenshotFile upload
DescriptionRich text
Add field

Drag-and-drop form builder

Rich text, dropdowns, star ratings, checkboxes, file uploads, video, all field types. Configure inline. Preview instantly.

Stored on Walrus · permanent

Walrus-native storage

Every submission is a Walrus blob. Permanent, verifiable, yours.

End-to-end encryptedOnly authorized readers can decrypt

End-to-end encryption

Private forms encrypt in the browser before upload. Only key holders can decrypt responses.

Loading times too slow on devnetCritical
Dashboard filter not workingHigh
Add bulk export to CSVMedium
24 submissions · 3 unread

Admin dashboard

Sort, tag priority, leave notes, and export. Built for teams that act on feedback.

SummaryTight and concise
TopicsClustered automatically
PrioritySuggested, not forced

AI-assisted analysis

Summaries, topic clustering, and priority suggestions, shaped by Claude Haiku.

The full flow.
Start to finish.

Scrolls should read like one section here, not a long scrollytelling detour. Pick a step and preview the flow inline.

Not another form tool.

Responses that outlive the platform. Compare for yourself.

Best Choice

Scrolls

Forms on Walrus

Typeform

SaaS form tool

Google Forms

Free form builder

Airtable

Database + forms

Responses are permanent here. The others still rent you the data layer.

Three surfaces.
One source of truth.

The web builder is for humans. The CLI is for your shell. The MCP server is for your agent. Same forms, same dashboard, same Walrus blob — whichever surface you pick.

01
CLI

scrolls
from your terminal.

Drop a YAML file, run one command, get a share link. The whole publishing flow becomes a shell script — perfect for CI, migrations, or just keeping your forms in git.

$npm i -g @scrolls/cli
  • Seven subcommands: init, create, list, get, submissions, export, submit.
  • Private form? The CLI writes the decryption key next to your spec at chmod 600.
  • --json on every command. Pipe straight into jq.
Explore the cli guide
bash
$ scrolls create bug-report.yaml
 
✦ scrolls · walrus-native forms
· Reading spec bug-report.yaml
· Uploading to Walrus (testnet)…
 
✓ Form published.
Form ID 0x4a…b29c
Blob _0QTBv…Mtrw
Share scrolls.fun/f?id=0x4a…b29c
02
SDK

ScrollsClient
in your codebase.

A pure Node 20+ library, ESM-only, typed end-to-end. Same encryption envelope as the web app — ECDH P-256, HKDF-SHA256, AES-GCM-256 — so a private form created with the SDK reads cleanly in the dashboard, and vice versa.

$npm i @scrolls/sdk
  • createForm, getForm, listForms, submit, listSubmissions, exportCsv.
  • Blob-only mode works without a Sui key. On-chain mode adds enumeration.
  • No opaque error codes. Errors say what to fix.
Explore the sdk guide
typescript
import { ScrollsClient } from "@scrolls/sdk";
 
const scrolls = new ScrollsClient({
network: "testnet",
suiPrivateKey: process.env.SUI_KEY,
});
 
const { shareUrl } = await scrolls.createForm({
title: "Bug report",
fields: [
{ type: "short_text", label: "Title" },
{ type: "long_text", label: "What happened?" },
],
});
03
MCP

scrolls-mcp
for your agent.

A Model Context Protocol server that exposes Scrolls as six tools. Drop it in Claude Desktop or Cursor and just ask: design a survey, publish it, summarise the responses when they arrive.

$npm i -g @scrolls/mcp
  • Six tools: create, list, get, list submissions, export, submit.
  • Stdio JSON-RPC. No network egress beyond Sui & Walrus.
  • Run without a Sui key for read-only or submit-only agents.
Explore the mcp guide
claude_desktop_config.json
{
"mcpServers": {
"scrolls": {
"command": "scrolls-mcp",
"env": {
"SCROLLS_NETWORK": "testnet",
"SUI_PRIVATE_KEY": "suiprivkey1…"
}
}
}
}

Full reference: API, recipes, CI snippets, troubleshooting.

Read the programmatic guide

Prompt the form.
Own the responses.

Start with AI or go straight to the builder. Walrus keeps the data layer permanent. Seal keeps private payloads private.