Create a fact package
fact_package_createBundle FactLot facts (each must pass fact_validate) into a fact package a counterparty can verify: canonical JSON (RFC 8785) of every fact, an RFC 6962 Merkle tree over the facts, the source documents the facts cite with their sha256 where known, and a digest over all of it. Returns the unsigned package, its digest, and signing_message, the exact text to sign. FactLot never holds private keys: to sign, the holder signs signing_message with their own Ed25519 key on their own machine (factlot.sign_fact_package in Python, signFactPackage in @factlot/tools, or fact_package_sign in the local MCP server). Deterministic: no clock time is added (pass created_at), and the same facts always give the same digest.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"facts": "<facts>"
},
"name": "fact_package_create"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| facts | Yes | The facts to package, in order: verified facts from the doc_* tools or any facts that pass fact_validate. | |
| title | No | A title for the package. | |
| documents | No | Source documents to describe beyond what the facts cite (a title, the file's sha256). Every document a fact cites is listed automatically. | |
| created_at | No | When the package was made (ISO 8601 with offset). FactLot adds no clock time, so the same input always gives the same package. | |
| created_by | No | The organization making the package. |