Attest Model
curl --request POST \
--url https://api.truthlocks.com/v1/models/attest \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"model_hash": "<string>",
"model_name": "<string>"
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
agent_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
model_hash: '<string>',
model_name: '<string>'
})
};
fetch('https://api.truthlocks.com/v1/models/attest', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.truthlocks.com/v1/models/attest"
payload = {
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"model_hash": "<string>",
"model_name": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.truthlocks.com/v1/models/attest"
payload := strings.NewReader("{\n \"agent_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"model_hash\": \"<string>\",\n \"model_name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"receipt_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"hash": "<string>",
"framework": "<string>",
"version": "<string>",
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"training_dataset_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"created_at": "2023-11-07T05:31:56Z"
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Datasets & Models
Attest Model
Create a provenance attestation for an AI model, linking it to training datasets and recording framework metadata.
POST
/
v1
/
models
/
attest
Attest Model
curl --request POST \
--url https://api.truthlocks.com/v1/models/attest \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"model_hash": "<string>",
"model_name": "<string>"
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
agent_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
model_hash: '<string>',
model_name: '<string>'
})
};
fetch('https://api.truthlocks.com/v1/models/attest', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.truthlocks.com/v1/models/attest"
payload = {
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"model_hash": "<string>",
"model_name": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.truthlocks.com/v1/models/attest"
payload := strings.NewReader("{\n \"agent_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"model_hash\": \"<string>\",\n \"model_name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"receipt_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"hash": "<string>",
"framework": "<string>",
"version": "<string>",
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"training_dataset_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"created_at": "2023-11-07T05:31:56Z"
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Creates a cryptographically anchored attestation for an AI model. The attestation captures the model’s framework, training lineage, hyperparameters, and evaluation metrics. It is linked to the originating agent and anchored in the transparency log.
Model attestations provide an auditable record of what was trained, how it was trained, and what data was used — enabling compliance teams and downstream consumers to verify model provenance before deployment.
Response
string
Unique model attestation identifier in MAIP format (
maip-model:ULID).string
The agent that attested this model.
string
Model name as provided in the request.
string
Resolved version of the model.
string
ML framework identifier.
string
SHA-256 hex digest stored for integrity verification.
string[]
Linked training dataset attestation identifiers.
string
Attestation status. Always
attested on creation.string
Transparency-log receipt anchoring this attestation.
string
ISO 8601 timestamp of creation.
Authorizations
API key for machine-to-machine authentication
Body
application/json
Attesting agent
ML framework (e.g. pytorch, tensorflow, onnx)
IDs of attested training datasets

