Documentation Index
Fetch the complete documentation index at: https://docs.sigilcore.com/llms.txt
Use this file to discover all available pages before exploring further.
Setup & Deployment
Can I use Sigil without self-hosting?
Can I use Sigil without self-hosting?
- Developer: Free — 1,000 governed actions/month
- Growth: 0.002 per action above
- Enterprise: Custom — dedicated infrastructure, SLAs, audit support via Sigil Governance
sigil-sign is available for teams that require it (MIT-licensed),
but for most deployments the API is faster to set up and lower maintenance.My service failed to start. What does 'warranty.md is missing a ## signature block' mean?
My service failed to start. What does 'warranty.md is missing a ## signature block' mean?
- Go to sigilcore.com/tools/warrant
- Generate a keypair (or use your existing private key to re-sign)
- Define your policy or paste your existing policy content
- Download the signed warranty.md
- Deploy it to your server at the path
WARRANTY_PATHpoints to - Set
SIGIL_OPERATOR_PUBLIC_KEYin your environment - Restart the service
My service failed to start. What does 'SIGIL_OPERATOR_PUBLIC_KEY is not set' mean?
My service failed to start. What does 'SIGIL_OPERATOR_PUBLIC_KEY is not set' mean?
- Open Sigil Warrant
- In Step 1, your public key is shown as
SIGIL_OPERATOR_PUBLIC_KEY=<value> - Copy that value and add it to your
.env.local(development) or your production environment variables - Restart the service
My service failed to start. What does 'Signature verification failed' mean?
My service failed to start. What does 'Signature verification failed' mean?
## signature block, but the signature does
not verify against the SIGIL_OPERATOR_PUBLIC_KEY in your environment. This
means one of three things:- The policy file was modified after signing. Even a single character change — including whitespace — invalidates the signature. Re-sign with Sigil Warrant and redeploy.
- The wrong public key is set. If you have rotated your keypair, the
SIGIL_OPERATOR_PUBLIC_KEYin your environment must match the private key used to sign the current warranty.md. - The signature block was edited manually. The
## signatureblock is generated by Sigil Warrant and must not be edited. If you need to change your policy, edit the content above the signature block, then re-sign the entire file.
What is Sigil Warrant and why do I need it?
What is Sigil Warrant and why do I need it?
- Generates an Ed25519 keypair entirely in your browser — no key material leaves your machine
- Lets you define your policy using a structured form with plain-English guidance for each field
- Signs the policy content with your private key and produces a signed warranty.md for download
SIGIL_OPERATOR_PUBLIC_KEY
value. Both are required before sigil-sign will start.Browser requirement: Sigil Warrant requires Chrome 113+ or Safari 17+.
If you prefer a CLI workflow, see the
CLI signing guide in the documentation.I updated my policy. Do I need to re-sign it?
I updated my policy. Do I need to re-sign it?
version field (e.g. 1.0.0 → 1.1.0)
whenever you update your policy. This makes the new policyHash in
subsequent attestations distinguishable from the previous version, which is
useful for auditing and debugging.The Verify tab in Sigil Warrant lets you confirm a signed file is valid
before you deploy it.What is the policyHash in the Intent Attestation JWT?
What is the policyHash in the Intent Attestation JWT?
policyHash claim — the SHA-256 hex
digest of your warranty.md content above the ## signature block.This hash is your cryptographic proof that a specific policy version was in
effect when the attestation was issued. It lets you verify, after the fact,
that the correct policy governed a given agent action.You can see your policy’s fingerprint in the Step 4 output of Sigil
Warrant after signing. Compare it to the policyHash in any attestation
JWT to confirm the right policy was evaluated.Errors & Policy Violations
Why was my transaction rejected with SIGIL_POLICY_VIOLATION?
Why was my transaction rejected with SIGIL_POLICY_VIOLATION?
SIGIL_POLICY_VIOLATION means your proposed transaction was successfully
processed, but it deterministically breached a rule in your warranty.md
policy. This is not a bug; it is the firewall working as intended.To diagnose:- Read the
messageorreasonfield in the JSON-RPC error response. - Open your
warranty.mdand locate the breached constraint. - Verify your request’s
amount,targetAddress, andchainIdmatch the policy.
I'm getting SIGIL_VALIDATION errors. What's wrong?
I'm getting SIGIL_VALIDATION errors. What's wrong?
SIGIL_VALIDATION_* errors mean your request failed schema validation
before policy evaluation even began.Common culprits:framework: Must be a non-empty string (lowercase alphanumeric and hyphens, max 64 chars). See the Framework Registry for known values. Unknown framework strings are accepted with a warning log.txCommit: Must be a lowercase 64-character hex string. Remove the0xprefix.chainId: Ensure you are targeting an allowlisted chain (1, 8453, 42161, 10, 137, 56, 999).intent.action: Must match an entry in your warranty.mdallowed_actionslist (or the per-chain override for the requested chain).
What does the JSON-RPC error response look like?
What does the JSON-RPC error response look like?
/rpc and /bundler endpoints are
returned as standard HTTP 200 JSON-RPC errors.Example:Attestation Verification
My attestation expired before I could use it. What do I do?
My attestation expired before I could use it. What do I do?
- Discard the expired token. It will be rejected.
- Request a new attestation by calling
POST /v1/authorizeagain. - Ensure your agent is not performing blocking operations (like heavy LLM reasoning) between receiving the attestation and submitting the transaction.
Can I cache and reuse an attestation for multiple transactions?
Can I cache and reuse an attestation for multiple transactions?
txCommit or userOpHash. Submitting an attestation with a
different transaction hash will instantly fail validation.How do I locally verify the Ed25519 signature?
How do I locally verify the Ed25519 signature?
jose library and Sigil’s public JWK endpoint.Sigil Command
What is Sigil Command?
What is Sigil Command?
DENIED, PENDING, and APPROVED policy
enforcement event for your API key. It is available at
command.sigilcore.com.Command is included with every Sigil Sign API key, including the free
Developer tier. No separate signup is required.How do I sign in to Command?
How do I sign in to Command?
- Go to command.sigilcore.com
- Enter the email address associated with your Sigil Sign API key
- Check your inbox for a magic link from
keys@sigilcore.com(expires in 10 minutes) - Click the link — your browser creates a session (24-hour validity)
keys@sigilcore.com.Can I see other users' violations in Command?
Can I see other users' violations in Command?
api_key_id from your session JWT on every request — the client cannot
override it. You can only see enforcement events for your own API key.Can I edit or delete violations in Command?
Can I edit or delete violations in Command?
I don't see any violations. Is something broken?
I don't see any violations. Is something broken?
- Submit a test intent to
POST /v1/authorizethat intentionally breaches your warranty.md (e.g. exceedmax_transaction_ethor use a blocked tool) - The
DENIEDevent should appear in Command within seconds
Sigil Vault
What is Sigil Vault?
What is Sigil Vault?
Does Sigil Vault store my credentials?
Does Sigil Vault store my credentials?
How does Vault relate to Sigil Sign?
How does Vault relate to Sigil Sign?
- Agent submits intent to Sigil Sign (
POST /v1/authorize) - Sigil Sign evaluates the intent against your warranty.md policy
- If approved, Sigil Sign issues an Ed25519 Intent Attestation
- Agent presents the attestation to Vault with its outbound request
- Vault validates the attestation, fetches the credential, and injects it
What happens if the attestation is missing or invalid?
What happens if the attestation is missing or invalid?
Is Sigil Vault available now?
Is Sigil Vault available now?
Key Custody & Security
Does Sigil store my private keys?
Does Sigil store my private keys?
SIGIL_OPERATOR_PUBLIC_KEY, which is
used to verify your policy signature at startup.What happens if I lose my warranty.md signing private key?
What happens if I lose my warranty.md signing private key?
- Go to sigilcore.com/tools/warrant
- Generate a new keypair in Step 1
- Re-enter your policy values (or use the Presets tab as a starting point)
- Sign and download the new warranty.md
- Update
SIGIL_OPERATOR_PUBLIC_KEYin your environment to the new public key - Deploy the new signed warranty.md
- Restart the service