关于 Proof of Type Input
Proof of Type Input 为网站提供可验证的人类输入框,适合需要确认评论、文章等文本由真人输入的网站开发者。它通过逐字输入和手机确认生成签名证明,而非根据文本内容猜测。
主要功能
- 01嵌入可验证的人类输入框
- 02生成签名证明令牌
- 03验证文本、站点来源和令牌
- 04支持 JavaScript 与 React
- 05支持在线及离线令牌验证
适用场景
- 01为评论表单验证真人输入
- 02审核用户提交的文章或评价
- 03在服务器保存前核验文本证明
MCP 相关
其 MCP 服务提供框架快速入门、证明令牌验证和主题说明工具,可供编码 Agent 接入并实现该输入框。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://www.proofoftype.com/mcpclaude mcp add --transport http com-proofoftype-input https://www.proofoftype.com/mcp{"mcpServers":{"com-proofoftype-input":{"type":"http","url":"https://www.proofoftype.com/mcp"}}}在 Cursor 中打开{"servers":{"com-proofoftype-input":{"type":"http","url":"https://www.proofoftype.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-proofoftype-input":{"type":"http","url":"https://www.proofoftype.com/mcp"}}}{"mcpServers":{"com-proofoftype-input":{"serverUrl":"https://www.proofoftype.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
3| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| framework | enum | 否 | 默认值:htmlhtml | javascript | react | nextjs | express | python | wordpress | curl | offline |
详细介绍
Proof of Type
一个能证明是人类亲手输入、而非 AI 生成的文本框。
只需添加一个 script 标签,您网站上的评论、帖子、评价或文章就能附带证明,表明内容由真人亲手输入:登录 Proof of Type,逐字输入(不粘贴、无 AI 生成文本),并在手机上通过 Face ID 或指纹确认。您的服务器会收到文本和签名证明令牌,您或任何人都可以验证该令牌。
- 在线演示和文档: https://www.proofoftype.com/developers
- API 参考: https://www.proofoftype.com/developers/api
- 面向 AI 助手: https://www.proofoftype.com/llms.txt
<script src="https://www.proofoftype.com/sdk/v1.js" async></script>
<form method="post" action="/comments">
<div data-proofoftype data-name="comment" data-placeholder="Write a comment"></div>
<button>Post</button>
</form>
提交表单时,用户会在手机上确认,随后您的服务器会收到:
| 字段 | 内容 |
|---|---|
comment | 按原样输入的文本 |
comment_proof | 证明令牌(EdDSA 签名的 JWT) |
使用您的 AI 编码 Agent 构建(MCP)
正在用 Vibe Coding 构建网站?连接 Proof of Type MCP 服务,并向您的 Agent 提出「创建一个能证明是人类输入的评论框」。
claude mcp add --transport http proofoftype https://www.proofoftype.com/mcp
其他客户端(Cursor、VS Code、……):
{ "mcpServers": { "proofoftype": { "url": "https://www.proofoftype.com/mcp" } } }
工具:get_quickstart(framework)、verify_proof(token, text, origin)、explain(topic)。
原理
AI 生成文本如今既免费又无穷无尽,而 AI 检测器只能根据最终文字猜测,因此两种判断都有可能出错。Proof of Type 不靠猜测,而是证明文本的生成方式:
- 用户在我们的输入框中逐字输入。输入框运行在来自 proofoftype.com 的安全框架中,因此宿主页面、扩展程序或脚本都无法伪造击键。
- 我们的服务器会为输入过程计时(不能瞬间完成,也不能重放),并根据人类的输入节奏进行评分。
- 用户在手机上的 Proof of Type 应用中通过 Face ID 或指纹确认确切文本。手机硬件会为该应用提供可信证明(Apple App Attest、Android 密钥证明)。脚本无法完成这一步。
粘贴或生成的文本永远无法获得证明。
在您的服务器上验证
保存文本前,务必先检查证明。只有在证明有效、与文本匹配且由您的网站生成时才接受。
const r = await fetch('https://www.proofoftype.com/api/v1/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
token: req.body.comment_proof,
text: req.body.comment, // the exact text
origin: 'https://your-site.com', // your site
max_age_seconds: 600, // made in the last 10 minutes
}),
}).then((res) => res.json());
if (!r.valid || !r.text_matches || !r.origin_matches || !r.fresh) {
return res.status(400).send('Please type your comment in the box.');
}
// Use each proof once: store r.proof.id with the comment, refuse repeats
// (proof tokens are public — they're in proof links).
// r.proof.author: the Proof of Type username who typed it
// r.proof.link: a link pasted with the text, if any
想用辅助函数?将 server.mjs 复制到您的项目中(verifyProof({ token, text, origin }))。
或者直接调用 API(无需密钥):
curl -s https://www.proofoftype.com/api/v1/verify \
-H 'Content-Type: application/json' \
-d '{"token":"<comment_proof>","text":"<comment>","origin":"https://your-site.com"}'
{ "valid": true, "text_matches": true, "origin_matches": true,
"proof": { "id": "pot_…", "author": "yogev", "origin": "https://your-site.com",
"typed_at": "2026-10-11T18:20:31.000Z", "score": 87, "words": 6, "text_sha256": "…" } }
离线验证
证明令牌是使用 EdDSA(Ed25519)签名的 JWT。公钥:https://www.proofoftype.com/.well-known/jwks.json。
import { createRemoteJWKSet, jwtVerify } from 'jose';
import { createHash } from 'node:crypto';
const JWKS = createRemoteJWKSet(new URL('https://www.proofoftype.com/.well-known/jwks.json'));
const { payload } = await jwtVerify(token, JWKS, {
issuer: 'https://www.proofoftype.com',
audience: 'https://your-site.com',
});
if (payload.text_sha256 !== createHash('sha256').update(text, 'utf8').digest('hex')) throw new Error('Not the signed text');
| 声明 | 内容 |
|---|---|
iss | https://www.proofoftype.com |
sub | 证明 ID(pot_…) |
aud | 输入文本的网站 |
iat | 验证时间 |
typed_by | "human" |
author | Proof of Type 用户名 |
signed_on | "ios" 或 "android" |
text_sha256 | 确切 UTF-8 文本的 SHA-256(十六进制) |
score, wpm, words, chars | 人类评分(0–100)、输入速度、长度 |
JavaScript API
const input = ProofOfType.mount('#editor', {
placeholder: 'Write your article…',
maxWords: 2000,
button: false, // verify from your own button
});
input.on('change', ({ words }) => {});
const proof = await input.verify(); // { text, html, token, author, score, url, … }
选项:name、placeholder、maxWords(10–3000)、theme(auto | light | dark)、button、buttonLabel、form、typewriter(是否显示打字机动画,默认为 true)、typewriterColor(例如 '#e11d48')、sound(默认为 true)、allowLinks(默认为 true:证明中会签署一个粘贴的链接,可从验证响应中的 proof.link 读取;false 则会阻止所有粘贴)。result.html 仅用于显示格式,不包含在证明中:请对其进行清理,或使用 result.text。相同选项也可用作 data- 属性(data-max-words、data-button-label、……)。
事件:ready、signin、change、verified、error、resize,也会作为 DOM 事件在元素上触发(proofoftype:verified)。
React
将 react.jsx 复制到您的项目中。它会为您加载 SDK:
import { HumanInput } from './react.jsx';
<HumanInput placeholder="Write a comment" onVerified={(r) => save(r.text, r.token)} />
TypeScript 类型:index.d.ts。
隐私
- Proof of Type 从不存储用户在你的网站上输入的文本。只有文本的 SHA-256 哈希会被签入证明。
- 按键会经过检查,然后立即丢弃。只有验证通过后,文本才会到达你的页面,而且只会到达你页面的真实来源。
- 你的网站会获取用户的 Proof of Type 用户名,不会获取他们的电子邮件或账户。
- 每份证明只能使用一次:一次输入会话、一次手机签名、一份证明。
开源内容
本仓库包含浏览器 SDK、React 组件、服务端辅助工具、类型定义和示例(MIT)。检查本身(按键捕获、输入时间线、手机签名)由 Proof of Type 执行,托管页面无法更改这些内容。这正是证明有价值的原因。
常见问题
我怎么知道网站上的评论是人写的,而不是 AI 写的? 将此输入框用作文本框,并在你的服务器上验证证明。只有当已登录用户在输入框中输入文本并在手机上批准后,才会生成证明。
这是 AI 检测器吗? 不是。它证明的是输入过程(由人输入、计时并签名),而不是根据文本进行猜测。
我的用户需要账户吗? 需要:一个免费的 Proof of Type 账户和 Proof of Type 应用(iPhone 或 Android)。登录只需一个弹窗;每份证明只需进行一次 Face ID 或指纹验证。
用户可以粘贴内容吗? 只能粘贴链接。允许对输入的文字进行自动更正;不允许使用预测文本、滑行输入和语音听写。
费用是多少? 对人类用户免费。
链接
- 文档:https://www.proofoftype.com/developers
- API:https://www.proofoftype.com/developers/api
- OpenAPI:https://www.proofoftype.com/openapi.json
- 更新日志:https://www.proofoftype.com/developers/changelog
- Proof of Type:https://www.proofoftype.com
MIT © Proof of Type
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。