Install any skill in seconds. Free to start, no credit card required.
Get Started Free →hashgraph-online/blob-storage
Use when a val needs simple key/value persistence — JSON documents, cached responses, uploaded files, or binary assets. Covers the std/blob API, listing and deleting keys, account-global or val scoping, and storage limits.
Passed 22 of 22 test cases with the skill, and 9 of 22 without it.
and 12 more in the full report
13 fixed9 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 13 test cases the skill fixed. Same model, same prompt, with and without the skill.
I want to remove a single stored file named 'old_cache.json' from my val's storage. What method call should I execute in TypeScript?
| Checked | Without skill | With skill |
|---|---|---|
| Calls blob.delete with argument old_cache.json | Passed | Passed |
| Imports blob from https://esm.town/v/std/blob/main.ts | Missed | Passed |
The instructions your model reads when the skill loads.
Val Town provides built-in key/value blob storage via the std/blob module. Reach for it whenever a val needs to persist simple values — JSON documents, cached API responses, uploaded files, or binary assets — keyed by a string. For relational or structured data you query with SQL, prefer std/sqlite instead.
There are two exports of the blob utility: global.ts, which is scoped to the user account, and main.ts, which is scoped to the val itself. Prefer the main.ts interface and val scoping for new vals.
Here is the scoped import:
/**
* Importing from `main.ts` provides an interface to val-scoped blobs.
*/
import { blob } from "https://esm.town/v/std/blob/main.ts";
Here are the global imports:
/**
* Importing from `global.ts` provides a blob interface that is scoped
* to your account.
*/
import { blob } from "https://esm.town/v/std/blob/global.ts";
/**
* This entrypoint is also available as `v/std/blob`. This is common
* in older vals.
*/
import { blob } from "https://esm.town/v/std/blob";
The scoped & global blob interfaces have the same methods.
Scoped & global blobs are stored separately: you cannot access global blobs with the scoped interface or vice versa.
import { blob } from "https://esm.town/v/std/blob/main.ts";
test cases passed, vs 9 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.