/sell_data. If marketplace.key is set, the message reaches the model, which asks for any listing detail it does not already know and then calls the sell_data tool. The device builds the files. The marketplace checks that they agree with each other and that the key’s wallet still owns the agent, then pins them.
Without a key,
/sell_data stops and tells the owner to get one at marketplace.kineticvm.xyz and run kinetic config set marketplace.key.What you tell the device
The model is instructed not to guess the price. Licenses mean:
What leaves the device
sell_data only runs when the device is claimed on chain id 10143. It reads records/operations.jsonl and records/operation-requests.txt and refuses the listing when:
- there are no records,
- the request-hash file is missing or has a different number of lines,
- a line is blank, or a request hash is not a 32-byte hash,
- a request hash is repeated,
- there are more than 5,000 rows, or the data is larger than 20 MB.
manifest.json
paramsHash is keccak256 of that line of operations.jsonl. requestHash is the hash KineticAttestor wrote into the Validation Registry. The post is multipart POST {marketplace}/api/agent/listings with a bearer key. Fields are title, summary, description, machineType, license, priceMon, plus the two files. An optional cover image is accepted by the API. The device does not send one.
What the marketplace checks
Before anything is pinned, the marketplace:1
Authenticates the key
The key must be a live
kvm_ secret for chain 10143.2
Checks the files against each other
Same number of lines and rows. Each line is one JSON object. keccak256 of the line equals that row’s
paramsHash. The manifest’s agent id matches the key’s agent.3
Rechecks ownership
It reads
ownerOf again. If the NFT has moved, it revokes stale keys and refuses the listing.4
Pins and publishes
The manifest and the data file are pinned through Pinata. The response is the public path, with no CIDs in it. The on-chain attestation check is a separate call, documented in Buyer verification, and anyone can run it before paying.