Skip to main content

Squillify development is paused indefinitely. Read why, and discover what this experiment achieved. Read the story

MicroSkills Reference

Hash File

file.hash

ProductionBounded custom (Class B)Deterministicverifiablefastv1.0.0
File inputNo network

Overview

You supply exactly one of a managed file reference, UTF-8 text, or Base64-encoded bytes; we compute one or more digests (SHA-256/384/512, SHA3-256/512, MD5) in a single pass. Output encoding is hex (default) or Base64. Algorithm tokens accept both short (sha256) and dashed (SHA-256) spellings. MD5 is for legacy checksums only and is flagged as non-cryptographic in metadata. Do not use this for password hashing or signature verification.

Deterministic hashing underpins integrity, deduplication, and caching — you should not reimplement it in every agent.

Reliability

Deterministic — identical bytes always produce identical digests, so retrying a call is safe and costs you only the recomputation. A fileRef resolves inside your own tenant only, and once it has expired we can no longer read it: you get a validation error saying the reference is not found or not accessible, and the fix is to upload the file again and hash the fresh reference. The remaining validation errors need an input change rather than a retry: sending none or more than one of fileRef, text, and contentBase64, an algorithm token outside the supported list, malformed Base64, text over 1,048,576 characters, and content or a file over 500 MiB.

Context footprint

Returns digests keyed by algorithm, byte count, and encoding metadata. A successful call costs 5 execution credits.

When to use it

When you need one or more digests of known content.

For password hashing, HMAC, or signature verification.

Scope

Note
Computes cryptographic digests over a file reference, UTF-8 text, or Base64 bytes.

Non-goals

  • Does not verify digital signatures
  • Does not hash passwords (use security.password_hash)
  • Does not treat MD5 as a security hash

Properties

IdempotentRetry safeStreaming supportedFile input supportedRequires external service

Capabilities

hashing

Cost & billing

Flat rate per invocation

MetercallsBillable onsuccessCost per call5 credits

File handling

Accepts file_refProduces file_refMax input500 MBMax file size500 MB

File limits

Constraints this skill applies to your input and generated files. The “Limited by” column shows the static source of each cap; none of these can be raised by upgrading your plan.

LimitValueLimited by
Maximum size per input file50 MiBPlatform maximum

How we handle your data

Protected temp storage
What this means

This skill may temporarily store files or intermediate data only to complete execution. Temporary data is protected and automatically deleted.

Squillify guarantees
  • Runs inside Squillify
  • This skill runs inside Squillify.
  • Payloads are not sent to an external service by this skill.
  • Temporary execution only storage
  • Squillify does not permanently store submitted payloads.
  • Telemetry records metadata only, not submitted content.
  • Submitted payloads are not used for training.
  • Submitted payloads are not reviewed by humans.
  • This skill does not target sensitive data.
  • The response may contain submitted or transformed content.
Your responsibility

Squillify does not determine whether submitted content is sensitive. Your application is responsible for deciding what data it is allowed to submit. Your application is responsible for securing the response.

Read the Microskill Data Handling Policy

Input schema

FieldTypeRequiredDescription
fileRefstringNoManaged file reference streamed up to 500 MiB. Required unless text or contentBase64 is provided.
textstringNoUTF-8 text hashed as its UTF-8 bytes, up to 1048576 characters. Required unless fileRef or contentBase64 is provided.
contentBase64stringNoBase64-encoded bytes hashed after decode, up to 500 MiB decoded. Required unless fileRef or text is provided.
algorithmsarrayNoBounded array of 1 through 8 algorithm tokens; omit it to use algorithm or sha256.
algorithmstringNoSingle algorithm token when you want one digest; omit it whenever algorithms is sent, and omit both for sha256.
encodingstringNoHow each digest is rendered; omit it for hex.
outputEncodingstringNoAlias for encoding; encoding wins if both arrive, and omit both for hex.

Output schema

FieldTypeRequiredDescription
okbooleanYesAlways true on success.
hashesobjectYesPurpose-bound digest map keyed by canonical short algorithm name; extra keys are sha256, sha384, sha512, sha3-256, sha3-512, or md5.
sizeBytesintegerYesHow many bytes were hashed.
metadataobjectNoClosed hashing metadata with encoding and an optional MD5 warning.

API contract

POST /v1/execute
curl
curl -sS -X POST "$BASE/v1/execute" -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d '{"skillKey":"file.hash","input":{"text":"abc","algorithms":["sha256"]}}'
Integrations
TypeScript SDK
import { Squillify } from "@squillify/sdk";

const sq = new Squillify({ apiKey: process.env.SQUILLIFY_API_KEY });

const { output } = await sq.execute("file.hash", {"algorithms":["sha256"],"text":"abc"});

Errors

CodeHTTPRetryableDescription
VALIDATION_ERROR400NoThe request payload failed schema validation.
UNAUTHORIZED401NoMissing or invalid API key.
SKILL_NOT_ACCESSIBLE403NoThe API key is not granted access to this skill.
SKILL_NOT_AVAILABLE_FOR_PLAN403NoThis skill is not included in your current plan.
PLAN_ELIGIBILITY_UNAVAILABLE503YesPlan eligibility could not be decided. Retry after backoff.
SKILL_NOT_FOUND404NoThe requested skill or version does not exist.
TENANT_RATE_LIMITED429YesRequest rate limit exceeded. Retry after backoff.
QUOTA_EXCEEDED429YesPlan quota exhausted. Retryable once the quota period resets.
EXECUTION_TIMEOUT504YesExecution exceeded the allowed time budget.

Other limits

LimitValue
Recommended inline bytes32 KiB

Limitations

  • Does not verify digital signatures
  • Does not hash passwords (use security.password_hash)
  • Does not treat MD5 as a security hash
  • Password or secret hashing
  • Signature verification

How to call

POST /v1/execute (requires authentication)

Request bodyjson
{
  "skillKey": "file.hash",
  "input": {
    "algorithms": [
      "sha256"
    ],
    "text": "abc"
  }
}

Examples

SHA-256 of inline text (known test vector for abc)

Inputjson
{
  "algorithms": [
    "sha256"
  ],
  "text": "abc"
}
Expected outputjson
{
  "ok": true,
  "hashes": {
    "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
  },
  "metadata": {
    "encoding": "hex"
  },
  "sizeBytes": 3
}

Multiple digests with Base64 output encoding

Inputjson
{
  "text": "abc",
  "algorithms": [
    "sha256",
    "md5"
  ],
  "encoding": "base64"
}
Expected outputjson
{
  "ok": true,
  "hashes": {
    "md5": "kAFQmDzST7DWlj99KOF/cg==",
    "sha256": "ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0="
  },
  "metadata": {
    "md5": "MD5 is non-cryptographic; use only for legacy checksums or non-adversarial dedup",
    "encoding": "base64"
  },
  "sizeBytes": 3
}
  • Integrity checks before transfer or ingestion
  • Content deduplication keys
  • Audit trails and cache keys

Avoid for

  • Password or secret hashing
  • Signature verification

Composable with

Safety & privacy

  • Runs without calling any external service.
  • Your payloads are never stored permanently.
  • Telemetry captures metadata only — never your payload contents.
  • We never train models on your payloads.
  • No human reviews your payloads.

Tags

hashingintegrityfile