Squillify Cryptographic Signature
crypto.squillify_signature
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
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
Capabilities
Cost & billing
Flat rate per invocation
File handling
How we handle your data
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.
Input schema
| Field | Type | Required | Description |
|---|---|---|---|
| payload | string | No | Nonblank UTF-8 payload covered by the receipt. Required unless batch is provided. |
| nonce | string | No | Caller nonce; omit it for empty. |
| batch | array | No | From 1 through 50 closed signing items with payload and optional nonce; omit it when payload is used. |
Output schema
| Field | Type | Required | Description |
|---|---|---|---|
| tool | string | Yes | Receipt skill key naming crypto.squillify_signature. |
| version | string | Yes | Receipt format version. |
| tenant_id | string | Yes | Bounded authenticated context identifier. |
| request_id | string | Yes | Bounded authenticated context identifier. |
| server_time | string | Yes | UTC signing instant. |
| payload_sha256 | string | Yes | Lowercase payload SHA-256. |
| nonce | string | Yes | Resolved caller nonce. |
| canonical | string | Yes | Exact bounded canonical signed text. |
| signature | string | Yes | Unpadded Base64url HMAC-SHA256. |
API contract
POST /v1/executecurl -sS -X POST "$BASE/v1/execute" -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d '{"skillKey":"crypto.squillify_signature","input":{"payload":"Hello World"}}'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
| Code | HTTP | Retryable | Description |
|---|---|---|---|
| VALIDATION_ERROR | 400 | No | The request payload failed schema validation. |
| UNAUTHORIZED | 401 | No | Missing or invalid API key. |
| SKILL_NOT_ACCESSIBLE | 403 | No | The API key is not granted access to this skill. |
| SKILL_NOT_AVAILABLE_FOR_PLAN | 403 | No | This skill is not included in your current plan. |
| PLAN_ELIGIBILITY_UNAVAILABLE | 503 | Yes | Plan eligibility could not be decided. Retry after backoff. |
| SKILL_NOT_FOUND | 404 | No | The requested skill or version does not exist. |
| TENANT_RATE_LIMITED | 429 | Yes | Request rate limit exceeded. Retry after backoff. |
| QUOTA_EXCEEDED | 429 | Yes | Plan quota exhausted. Retryable once the quota period resets. |
| EXECUTION_TIMEOUT | 504 | Yes | Execution exceeded the allowed time budget. |
Other limits
| Limit | Value |
|---|---|
| Recommended inline bytes | 32 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)
{
"skillKey": "crypto.squillify_signature",
"input": {
"payload": "Hello World"
}
}Examples
Sign a payload without a nonce
{
"payload": "Hello World"
}{
"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
{
"payload": "audit",
"nonce": "n-42"
}{
"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"
}Recommended use cases
- 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
Related skills
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.