I went looking at how @OpenGradient ($OPG , #OPG ) actually treats privacy in practice, not how the homepage frames it, and the answer turned up in the SDK itself. The chat and completion functions both default their settlement mode to BATCH_HASHED: every inference call, unless you explicitly override it, gets bundled into a Merkle tree with input and output hashes written on-chain. A PRIVATE mode exists too, fully off-chain, nothing posted, but it's a parameter you have to know exists before you can ask for it, not what runs when you just call the function. The TEE layer genuinely does shield your raw prompt from the node operator, so the privacy claim isn't false, it's just quieter and narrower than it sounds on the landing page. What gets called 'private' here is really two different guarantees stacked under one word, execution privacy and settlement privacy, and only the first one ships turned on. I keep catching myself doing this with other protocols too, reading one adjective as covering everything a product does instead of checking which specific layer it was describing. Curious whether OpenGradient ever flips that default, or whether cost efficiency keeps winning that argument quietly.
#OPG
#OPG