Skip to main content

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

MicroSkills Reference

Squillify Cryptographic Signature

crypto.squillify_signature

ProductionBounded custom (Class B)verifiableinstantv1.0.0
No network

Overview

When you need proof that Squillify executed with a specific payload, we hash your text, bind tenant, request id, server time, and an optional nonce into a canonical string, and sign it with HMAC-SHA256 using a platform secret you cannot access. The receipt is independently verifiable with the shared secret. Do not use this for encryption, custom protocol HMAC, or signature verification — it only signs execution receipts.

Agents can fabricate text output. We sign a receipt with a secret you cannot read, so downstream systems can trust that execution happened on Squillify.

Reliability

Each call reads our clock, so server_time and therefore signature differ every time — only payload_sha256 and the canonical field order are stable for the same payload and nonce. What a receipt proves is narrow: that Squillify processed exactly that payload for that tenant and request at that moment. It is a shared-secret MAC, so anyone holding the verification secret could also mint one, and it says nothing about what your payload contains. Retries are safe but produce new receipts. Input validation errors (not retryable): missing or blank payload, non-string payload/nonce, payload over 2048 chars, or batch over 50 items — fix the input before retrying. To verify: recompute SHA-256(payload), rebuild canonical v=1|tool=...|tenant=...|request_id=...|server_time=...|payload_sha256=...|nonce=..., HMAC-SHA256 with the shared secret, base64url-compare to signature.

Context footprint

Returns a single receipt or a batch wrapper with up to 50 signed items. A single signature costs 1 execution credit; a batch costs 1 credit per item.

When to use it

When you need a verifiable proof-of-execution receipt for a specific payload.

When you need encryption, key generation, or to verify a signature in-band.

Scope

Note
Produces an HMAC-SHA256 signed receipt binding payload, tenant, request, time, and nonce.

Non-goals

  • Does not encrypt data
  • Does not verify signatures
  • Does not expose the platform secret
  • Not a public-key signature — the same shared secret both verifies and mints receipts
  • Does not track nonces or detect replays for you

Properties

IdempotentRetry safeStreaming supportedFile input supportedRequires external service

Capabilities

hashingsigning

Cost & billing

Flat rate per invocation

MetercallsBillable onsuccessCost per call1 credit

File handling

Accepts file_refProduces file_refMax input2 KB

How we handle your data

Sensitive input, safe output
What this means

This skill may receive sensitive content, but it does not target sensitive data and returns only a structured non-sensitive result.

Squillify guarantees
  • Runs inside Squillify
  • This skill runs inside Squillify.
  • Payloads are not sent to an external service by this skill.
  • 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 does not contain submitted 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
payloadstringNoNonblank UTF-8 payload covered by the receipt. Required unless batch is provided.
noncestringNoCaller nonce; omit it for empty.
batcharrayNoFrom 1 through 50 closed signing items with payload and optional nonce; omit it when payload is used.

Output schema

FieldTypeRequiredDescription
toolstringYesReceipt skill key naming crypto.squillify_signature.
versionstringYesReceipt format version.
tenant_idstringYesBounded authenticated context identifier.
request_idstringYesBounded authenticated context identifier.
server_timestringYesUTC signing instant.
payload_sha256stringYesLowercase payload SHA-256.
noncestringYesResolved caller nonce.
canonicalstringYesExact bounded canonical signed text.
signaturestringYesUnpadded Base64url HMAC-SHA256.

API contract

POST /v1/execute
curl
curl -sS -X POST "$BASE/v1/execute" -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d '{"skillKey":"crypto.squillify_signature","input":{"payload":"Hello World"}}'
Integrations
TypeScript SDK
import { Squillify } from "@squillify/sdk";

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

const { output } = await sq.execute("crypto.squillify_signature", {"payload":"Hello World"});

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 encrypt data
  • Does not verify signatures
  • Does not expose the platform secret
  • Not a public-key signature — the same shared secret both verifies and mints receipts
  • Does not track nonces or detect replays for you
  • General-purpose encryption
  • Custom protocol HMAC outside the receipt format

How to call

POST /v1/execute (requires authentication)

Request bodyjson
{
  "skillKey": "crypto.squillify_signature",
  "input": {
    "payload": "Hello World"
  }
}

Examples

Sign a payload without a nonce

Inputjson
{
  "payload": "Hello World"
}
Expected outputjson
{
  "nonce": "",
  "request_id": "req_example",
  "canonical": "v=1|tool=crypto.squillify_signature|tenant=t_example|request_id=req_example|server_time=2026-07-12T00:00:00Z|payload_sha256=a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e|nonce=",
  "tool": "crypto.squillify_signature",
  "signature": "FS22YC1bc6olNBWQPxAKi7g0rXTujy7qSAt0WypMr1g",
  "version": "1.0.0",
  "tenant_id": "t_example",
  "server_time": "2026-07-12T00:00:00Z",
  "payload_sha256": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e"
}

Sign with a nonce for replay protection

Inputjson
{
  "payload": "audit",
  "nonce": "n-42"
}
Expected outputjson
{
  "nonce": "n-42",
  "request_id": "req_example",
  "canonical": "v=1|tool=crypto.squillify_signature|tenant=t_example|request_id=req_example|server_time=2026-07-12T00:00:00Z|payload_sha256=b81f37a043a6f767e7c94d105f4bd31282f3ecc20680bb9d09bd93461cf4c863|nonce=n-42",
  "tool": "crypto.squillify_signature",
  "signature": "5nGf4Q3cdEKG4hcq0I_jYgTisWccrb5LExoXTxnMdcA",
  "version": "1.0.0",
  "tenant_id": "t_example",
  "server_time": "2026-07-12T00:00:00Z",
  "payload_sha256": "b81f37a043a6f767e7c94d105f4bd31282f3ecc20680bb9d09bd93461cf4c863"
}
  • Prove platform execution in audit trails
  • Bind a payload hash to tenant and request context
  • Attach your own nonce so you can spot a receipt you have already seen

Avoid for

  • General-purpose encryption
  • Custom protocol HMAC outside the receipt format

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

verificationcryptographyproofsecuritysignature