~Alter SDK
~alter SDK
자신의 코드에서 본인의 동의와 그 대가를 받고 신원을 읽어내세요.
~alter란 무엇인가? · 설치 · 아무것도 없는 상태에서 유료 읽기까지
~alter란 무엇인가?
~Alter에 대해 읽는 대부분의 사람들은 자신의 신원에 대해 알아보려는 것이고, 당신은 그렇지 않습니다. 당신은 사용자가 누구인지 알아야 하는 무언가를 만들고 있으며, 그 때문에 당신은 질문을 하고, 답을 저장하고, 이후에 그 답을 지니고 다니는 당사자가 됩니다.
질문하는 것은 쉬운 부분입니다. 그 뒤에 따라오는 것은 저장 데이터 암호화, 보존 일정, 접근 검토, 사용자가 당신을 그만둔 지 한참 후에 도착하는 삭제 요청, 그리고 그중 어떤 것이 유출되더라도 보내야 하는 알림입니다. 당신은 그 모든 것을, 그 데이터의 유일한 출처가 당신이 만든 입력란에 누군가가 타이핑한 것뿐이고, 누구에게도 검증되지 않았으며, 입력된 그날부터 이미 낡은 데이터를 위해 짊어집니다.
~Alter는 그 사람이 소유한 이름 아래 보관되는 기록이며, 그 안의 내용은 양식에 타이핑된 것이 아니라 그들이 해온 일에서 읽어낸 것입니다. 당신의 코드는 답이 필요한 시점에 그 기록을 읽고, 호출이 반환되면 그 어떤 것도 보관하지 않습니다. 그 사람은 당신의 애플리케이션이 무엇을 볼 수 있는지를 미리 결정하며, 이는 동의 대화를 당신의 화면이 아닌 그들의 화면에 놓습니다.
누군가가 존재하는지 확인하는 것은 비용이 들지 않고 그 사람의 존재 사실 외에는 아무것도 공개하지 않습니다. 더 나아가는 읽기는 가격이 책정되어 있으며, 당신이 지불하는 금액의 4분의 3은 기록이 읽힌 그 사람에게 도달합니다. 당신은 하나의 답을 보관하는 대신, 필요한 동안 그 답을 사는 것입니다.
그 어떤 것도 믿음으로 받아들일 필요가 없습니다. 이것을 당신이 이미 사용하는 AI에게 넘기고, 당신 자신의 말로 안내받으세요.
Go to truealter.com, find the genesis and the origin papers, and read all of
them. Then start a discussion with me in my own language, no jargon.
Ask me one question at a time and wait for my answer. Follow what I am curious
about, not the order the site is written in.
Do not only read the pages. Connect to their interface directly and call
get_started. That tells you where I am and what comes next, and we work the
rest of this from there.
If I have a ~handle I will give it to you. If I do not and I decide I want
one, set it up with me here.
What I want to understand is what ~Alter is, how it applies to me, and what it
means for everyone else. Find me somewhere in it, and not the version written
for people who work in technology. Find the life nearest mine and walk me
through it, including what it would cost me.
Try to prove them wrong. Go and find where they show their working, and if
something is unclear or does not hold up, say so.Related MCP server: mcp-server
~alter SDK란 무엇인가?
그 기록을 위한 타입이 지정된 TypeScript 클라이언트로, 당신의 코드가 핸들이 존재하는지 물어보고, 그 사람이 당신과 공유하기로 동의한 특성을 읽고, 더 깊은 읽기를 USDC로 결제할 수 있게 해줍니다.
정문은 @truealter/cli로, 누군가가
처음으로 핸들을 얻는 방법이며 MCP 브리지를 담고 있습니다. 이 패키지는 그들이 이미
핸들을 보유한 후에 당신의 애플리케이션이 임포트하는 것입니다.
그 아래에는 ~Alter의 MCP 서버 위의 얇은 클라이언트로, Streamable HTTP와 JSON-RPC 2.0을
통해 MCP 스펙 2025-11-25을 말합니다. x402 결제와 ES256 출처 검증을 담고 있으며,
@noble/ed25519와 @noble/hashes에만 의존하고 그 외에는 아무것도 의존하지 않으며,
ESM과 CJS를 모두 제공합니다.
마흔일곱 개의 도구가 공개적으로 광고되며, 그중 서른여덟 개는 무료 등급에 있습니다.
무료가 공개와 같은 것은 아닙니다. 마흔일곱 개 중 열두 개는 자격 증명을 전혀 보유하지
않은 호출자에게 응답하며, 신원을 읽는 모든 것은 먼저 ~handle을 요구합니다.
당신의 IAM 스택은 누가 로그인했는지에 답합니다. 그것은 변경 없이 이 위에 놓일 수 있습니다.
설치
npm install @truealter/sdkNode 18 이상. Deno, Bun, Cloudflare Workers 및 최신 브라우저에서도 실행되며, 자체 월렛 의존성을 가져오지 않습니다.
아무것도 없는 상태에서 유료 읽기까지
1단계는 아무것도 없이 실행됩니다. 2단계부터는 ~handle이 필요하며, 이는 비용이 들지
않고 인간 계정도 필요하지 않으며, 그 사이의 짧은 섹션이 하나를 발행하는 방법입니다.
마지막의 유료 단계만이 돈이 드는 유일한 단계이고, 누군가에게 돈을 지불하는 유일한
단계입니다.
1. 아무것도 없이 연결하기
import { AlterClient } from "@truealter/sdk";
const alter = new AlterClient();기본 엔드포인트는 https://mcp.truealter.com/api/v1/mcp입니다. 모든 무료 도구는
익명 클라이언트에 응답합니다. examples/hello-agent/의
작동 예제는 자격 증명 없이 연결합니다.
2단계 전에, ~handle 발행하기
열두 개의 도구는 자격 증명을 보유하지 않은 호출자에게 응답하며, 이는 무료 등급이
아니라 발견 및 등록 표면입니다. 신원을 읽는 모든 것은 ~handle이 필요하며, 당신
자신을 대신해 행동하는 모든 것도 마찬가지입니다. 에이전트는 register_autonomous와
register_autonomous_challenge를 통해 MCP로 자신의 것을 발행하며, 둘 다 비용이
들지 않고 그 뒤에 인간 계정을 요구하지 않습니다. 사람은 alter login을 한 번
실행하며, 이는 멤버 자격 증명을 ~/.config/alter/session.json에 기록합니다.
어느 쪽이든 호스팅 엔드포인트는 bearer 우선이므로, CLI 브리지가 당신을 위해 그
세션을 읽고 어느 시점에도 발행하거나 붙여넣을 키가 없습니다. 클라이언트를 직접
구성한다면, 동일한 세션 자격 증명을 선택적 apiKey로 전달하세요.
2. 누군가가 알려진 사람인지 묻기
const verified = await alter.verify("~alter");핸들, 이메일 또는 id. 이것은 비용이 들지 않고 그 사람의 존재 사실 외에는 아무것도 드러내지 않는 확인이며, 설계상 무료 등급입니다.
3. 그들이 공유하기로 동의한 것을 읽기
const depth = await alter.getEngagementLevel({ member_id });
const matches = await alter.searchIdentities({
trait_criteria: {
pressure_response: { min: 0.7 },
cognitive_flexibility: { min: 0.6 },
},
});Depth는 기록이 얼마나 존재하는지와 어떤 등급이 당신에게 열려 있는지 알려줍니다. 특성 검색은 최대 다섯 개의 결과를 반환하며 개인 식별 데이터는 없습니다.
4. 답이 정말로 ~Alter에서 왔는지 확인하기
const check = await alter.verifyProvenance(result._meta?.provenance);
if (!check.valid) throw new Error(`provenance failed: ${check.reason}`);모든 중간 및 높은 민감도 응답은 ES256으로 서명됩니다. 검증은 게시된 키에 대해 오프라인으로 선택적으로 수행되므로, 결과를 다른 에이전트에게 전달하는 에이전트는 누구도 ~Alter에 다시 연락하지 않고도 확인될 수 있습니다.
5. 더 깊은 읽기를 위해 지불하고, 그 사람에게 지불하기
import { AlterClient, X402Client } from "@truealter/sdk";
const alter = new AlterClient({
x402: new X402Client({
signer: yourViemOrEthersSigner,
networks: ["base"],
assets: ["USDC"],
maxPerQuery: "0.10",
}),
});
const vector = await alter.getFullTraitVector({ member_id });서버는 402로 응답하고, SDK는 Base에서 결제하고 재시도하며, 분배는 동일한
트랜잭션에서 온체인으로 실행됩니다. 그 대부분은 Identity Income으로서 기록이 읽힌
그 사람에게 가며, 먼저 보관하는 누구를 통하지 않고 직접 도달합니다. 자신의 서명자를
가져오세요. 이 패키지에는 의도적으로 월렛이 없습니다.
견적이 maxPerQuery를 초과하거나, 당신이 허용하지 않은 네트워크나 자산을
지정한다면, SDK는 서명자가 호출되기 전에 거부하고 아무것도 브로드캐스트하지
않습니다.
아래의 모든 것은 기본적으로 닫혀 있습니다. 처음 두 개는 연결하는 동안 여는 것이고, 다음 네 개는 결제, 서명 및 발견이 실제로 작동하는 방식이며, 마지막 두 개는 읽기와 프로젝트입니다.
클라이언트 초기화
import { AlterClient, X402Client } from "@truealter/sdk";
const alter = new AlterClient({
endpoint: "https://mcp.truealter.com/api/v1/mcp", // optional, this is the default. A bare host returns 405
x402: new X402Client({ // optional, only for paid reads
signer: yourViemOrEthersSigner,
maxPerQuery: "0.10",
}),
});인증
위의 클라이언트는 익명이며, 모든 무료 L0 도구는 자격 증명 없이 응답합니다. 당신
자신의 신원에 대해 작동하는 도구(상시 요구사항, Golden Thread, 멤버 자체 쓰기)의
경우, alter login을 한 번 실행하세요. 이는 당신의 멤버 자격 증명을 로컬 세션
(~/.config/alter/session.json)에 프로비저닝합니다. 호스팅 엔드포인트는 bearer
우선이므로, @truealter/cli
브리지가 당신을 위해 그 세션 자격 증명을 읽습니다. 키를 발행하거나 붙여넣을 일이
결코 없습니다. 클라이언트를 직접 구성한다면, 동일한 세션 자격 증명을 선택적
apiKey 옵션으로 전달하세요.
최소 버전 기준선
~Alter의 백엔드는 클라이언트별 최소 버전을 게시하고 가장자리에서 이를 강제합니다. 기준선 아래의 클라이언트는 HTTP 426으로 응답받고 응답 본문은 업그레이드 명령을 담습니다. 기준선 문서는 기준선 전용 Ed25519 키로 서명되므로, 어떤 클라이언트에도 서명 비밀이 탑재되지 않으며 손상된 클라이언트는 하나를 위조할 수 없습니다.
이 SDK는 그 기준선을 사전 점검하지 않습니다. 여기에는 타입이 지정된 기준선 미만
오류가 없으므로, 426은 다른 처리되지 않은 상태와 같은 방식으로 도착합니다. 코드
NETWORK를 가진 AlterError로, 그 메시지는 상태와 본문의 처음 200자를 담습니다.
타입이 지정된 사전 점검은 @truealter/cli에 있으며, 이는 기준선을 신뢰하기 전에
기준선 문서의 서명을 검증합니다.
import { AlterClient, AlterError } from "@truealter/sdk";
const alter = new AlterClient();
try {
await alter.verify("~alter");
} catch (err) {
if (err instanceof AlterError && err.message.includes("HTTP 426")) {
console.error(`upgrade required: ${err.message}`);
process.exit(1);
}
throw err;
}빌드 대상 버전을 고정하고 의도적으로 업그레이드하세요. 타입이 지정된 사전 점검은 이 SDK에 속하며 아직 작성되지 않았습니다.
신원 헤더
AlterClient / MCPClient의 모든 나가는 요청은 서버 측 기준선 미들웨어가
참조하는 세 개의 신원 헤더를 담습니다:
헤더 | 값 (이 SDK) |
|
|
| 실행 중인 |
|
|
이것들은 서버가 최소 지원 클라이언트 버전을 강제할 수 있도록 모든 인증된 백엔드 엔드포인트에서 MANDATORY입니다. User-Agent 헤더는 정보 제공용으로 남아 있으며 기준선 강제에 절대 사용되지 않습니다.
무료 읽기, L0, 결제 불필요
// Verify a registered identity by handle, email, or id
const verified = await alter.verify("~alter");
const verifiedById = await alter.verify(
"550e8400-e29b-41d4-a716-446655440000",
{
archetype: "weaver",
min_engagement_level: 3,
traits: { pressure_response: { min: 0.6 } },
},
);
// Reference data, the 12 ~Alter archetypes
const archetypes = await alter.listArchetypes();
// Identity depth and available tool tiers
const depth = await alter.getEngagementLevel({
member_id: "550e8400-e29b-41d4-a716-446655440000",
});
// Search by trait criteria. No PII exposed, max 5 results
const matches = await alter.searchIdentities({
trait_criteria: {
pressure_response: { min: 0.7 },
cognitive_flexibility: { min: 0.6 },
},
});
// Golden Thread program status
const thread = await alter.goldenThreadStatus();유료 읽기, L1~L5, x402로 정산
// L1, extract trait signals from text ($0.01, first 100 free per bot)
const signals = await alter.assessTraits({
text: "I led the incident response when our payment rails went down...",
context: "interview transcript",
});
// L2, the full 30-trait vector ($0.10)
const vector = await alter.getFullTraitVector({
member_id: "550e8400-e29b-41d4-a716-446655440000",
});
// L4, belonging probability for a person-job pairing ($0.60)
const belonging = await alter.computeBelonging({
member_id: "550e8400-e29b-41d4-a716-446655440000",
job_id: "f47ac10b-58cc-4372-a567-0e02b2c3d479",
});
// L5, top match recommendations ($1.00)
const recommendations = await alter.getMatchRecommendations({
member_id: "550e8400-e29b-41d4-a716-446655440000",
limit: 5,
});
// L5, a human-readable narrative explaining a match ($1.00)
const narrative = await alter.generateMatchNarrative({
match_id: "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
});출처 검증
// Every medium- and high-sensitivity response is signed with ES256.
// Verification is opt-in. Call alter.verifyProvenance(...) yourself.
const result = await alter.getFullTraitVector({
member_id: "550e8400-e29b-41d4-a716-446655440000",
});
const check = await alter.verifyProvenance(result._meta?.provenance);
if (!check.valid) throw new Error(`provenance failed: ${check.reason}`);
// Verify that schema hashes published in tools/list._meta.signatures
// match the local representation of each tool.
const tools = await alter.mcp.listTools();
const sigs = tools._meta?.signatures ?? {};
const results = await alter.verifyToolSignatures(tools.tools, sigs);
const tampered = results.filter((r) => !r.valid);
if (tampered.length) throw new Error(`tampered tools: ${tampered.map((t) => t.tool).join(", ")}`);검색
import { discover } from "@truealter/sdk";
// Three-step discovery cascade: DNS TXT to mcp.json to alter.json
const descriptor = await discover("truealter.com");
// returns { url: "https://mcp.truealter.com/api/v1/mcp", transport, source, publicKey, x402Contract, capability }저수준 MCPClient
import { MCPClient } from "@truealter/sdk";
const mcp = new MCPClient({ endpoint: "https://mcp.truealter.com/api/v1/mcp" });
await mcp.initialize();
const tools = await mcp.listTools();
const response = await mcp.callTool("verify_identity", {
member_id: "550e8400-e29b-41d4-a716-446655440000",
});SDK는 주요 MCP 인식 클라이언트용 구성 생성기를 제공합니다. 각 생성기는 적절한 파일에 붙여넣거나 직접 작성할 수 있는 JSON 스니펫을 출력합니다.
Claude Code (.mcp.json)
import { generateClaudeConfig } from "@truealter/sdk";
import { writeFileSync } from "node:fs";
const config = generateClaudeConfig({
endpoint: "https://mcp.truealter.com/api/v1/mcp",
});
writeFileSync(".mcp.json", JSON.stringify(config, null, 2));결과 .mcp.json:
{
"mcpServers": {
"alter": {
"url": "https://mcp.truealter.com/api/v1/mcp",
"transport": "streamable-http",
"description": "~Alter Identity - psychometric identity field for AI agents"
}
}
}이 구성은 모든 무료 L0 도구에 익명으로 접근합니다. 인증된
접근이 필요하면 alter login을 실행하고 CLI가 구성을 작성하게 하십시오
(alter config). 그러면 bearer 우선 브리지가 세션 자격 증명을
전달하므로 파일에 키가 저장되지 않습니다.
Cursor (.cursor/mcp.json)
import { generateCursorConfig } from "@truealter/sdk";
import { writeFileSync } from "node:fs";
const config = generateCursorConfig({
endpoint: "https://mcp.truealter.com/api/v1/mcp",
});
writeFileSync(".cursor/mcp.json", JSON.stringify(config, null, 2));일반 MCP 클라이언트
import { generateGenericMcpConfig } from "@truealter/sdk";
const config = generateGenericMcpConfig({
endpoint: "https://mcp.truealter.com/api/v1/mcp",
serverName: "alter", // editor-specific key under mcpServers
});CLI
명령줄은 이 SDK 패키지가 아닌 @truealter/cli에
있습니다:
alter init # generate keypair, discover MCP, write ~/.config/alter/identity.json
alter config # print Claude .mcp.json snippet (default)
alter config --cursor # print Cursor .cursor/mcp.json snippet
alter config --generic # print generic mcpServers snippet
alter verify ~alter # verify an identity
alter status # show connection state and probe the endpoint~Alter는 더 깊은 읽기 요금을 x402 표준을 통해 책정합니다. 이는 HTTP 402 Payment Required와 온체인 정산을 사용하는 방식입니다.
재시도 흐름
클라이언트가 결제 헤더 없이 유료 도구를 호출합니다.
서버가 결제 요구 사항(금액, 수신자, 자산, 네트워크)과 함께
402 Payment Required로 응답합니다.클라이언트가 Base L2에서 USDC 전송에 서명하고 브로드캐스트한 다음, 증명을 첨부하고 재시도합니다.
서버가 증명을 검증하고 도구를 실행한 다음, ES256으로 응답에 서명하여 반환합니다.
AlterRouter가 동일한 트랜잭션에서 온체인 분할을 실행합니다. 데이터 주체는 Identity Income을 직접 수령하고, ~Alter는 프로토콜 수수료만 받습니다. 수탁자도 중개자도 없습니다.
SDK는 signer가 구성된 X402Client가 전달되면 2~4단계를 자동으로 처리합니다.
티어 구조
L0~L5 신뢰 티어의 x402 마이크로결제입니다. 호출별 요금은 alter login 후 확인할 수 있습니다.
Identity Income 분할
정산된 모든 호출의 대부분은 데이터 주체에게 Identity Income으로 전달됩니다. 분할 세부 정보는 alter status를 통해 인증 후 확인할 수 있습니다.
코드 예시
import { AlterClient, X402Client, type X402Signer } from "@truealter/sdk";
// Bring your own signer. viem, ethers, a hardware wallet bridge, anything.
// The SDK ships without a wallet dependency on purpose.
const signer: X402Signer = {
async settle(envelope) {
const txHash = await yourWallet.sendUsdcTransfer({
to: envelope.recipient,
amount: envelope.amount,
chain: envelope.network,
});
return {
reference: txHash,
network: envelope.network,
amount: envelope.amount,
asset: envelope.asset,
};
},
};
const alter = new AlterClient({
endpoint: "https://mcp.truealter.com/api/v1/mcp",
x402: new X402Client({
signer,
networks: ["base", "base-sepolia"], // policy allow-list
assets: ["USDC"],
maxPerQuery: "0.10", // refuse anything over $0.10 USDC
}),
});
// Auto-retries with payment when the server returns 402
const vector = await alter.getFullTraitVector({
member_id: "550e8400-e29b-41d4-a716-446655440000",
});인용된 엔벨로프가 maxPerQuery를 초과하거나, 허용되지 않은 네트워크를 사용하거나, 허용되지 않은 자산을 지정하면 SDK는 signer를 호출하기 전에 AlterError로 호출을 거부하며 온체인 트랜잭션은 브로드캐스트되지 않습니다.
중간 또는 높은 민감도 도구의 모든 응답에는 _meta.provenance에 ES256 JWS가 포함됩니다. 서명은 응답 페이로드의 표준 JSON 직렬화, 도구 이름, 호출 타임스탬프, 요청 에이전트의 키 해시, 단조 증가 시퀀스 번호를 포함합니다.
const result = await alter.getFullTraitVector({
member_id: "550e8400-e29b-41d4-a716-446655440000",
});
const check = await alter.verifyProvenance(result._meta?.provenance);
if (!check.valid) throw new Error(`~alter provenance check failed: ${check.reason}`);SDK는 https://api.truealter.com/.well-known/alter-keys.json에서 공개 키를 가져오고 Cache-Control 헤더에 따라 캐시합니다. 이 엔드포인트는 현재 및 최근에 교체된 모든 서명 키를 포함하는 JWKS를 반환합니다. 검증하는 클라이언트는 kid가 일치하고 유효 기간 내에 있는 모든 키를 수락해야 합니다.
verify_at 호스트 이름 허용 목록 (v0.1.1 이상)
모든 출처 엔벨로프에는 SDK가 JWKS를 가져올 위치를 알려주는 verify_at 힌트가 포함될 수 있습니다. 이 힌트는 서버가 제공하므로, 악의적인 MCP 서버가 이를 공격자가 제어하는 JWKS로 지정하고 자체 서명 키로 ES256 검증을 통과시킬 수 있습니다. SDK는 verify_at을 호스트 이름 허용 목록으로 제한하며, 기본값은 api.truealter.com과 mcp.truealter.com이고 http:// URL은 무조건 거부합니다. 자체 배포를 운영하는 다운스트림 통합자는 SDK를 포크하지 않고도 AlterClient 또는 직접 verifyProvenance() 호출의 verifyAtAllowlist를 통해 허용 목록을 확장할 수 있습니다.
import { AlterClient, DEFAULT_VERIFY_AT_ALLOWLIST } from "@truealter/sdk";
const alter = new AlterClient({
verifyAtAllowlist: [
...DEFAULT_VERIFY_AT_ALLOWLIST, // keep the ~Alter canonicals
"keys.myorg.example", // plus your own JWKS host
],
});jwksUrl을 명시적으로 고정하면 엔벨로프의 verify_at은 완전히 무시되고 고정된 URL이 우선합니다. https: 체계 요구 사항은 고정된 URL에도 적용됩니다.
이것이 중요한 이유
출처 검증은 에이전트 A가 에이전트 B의 데이터가 실제로 ~Alter에서 왔음을 신뢰하는 방법입니다. 에이전트 B가 특성 벡터나 소속 점수를 전달하면, 에이전트 A는 ~Alter의 게시된 키에 대해 JWS를 재생하여 ~Alter에 다시 연락하지 않고도 페이로드가 진본이고, 변조되지 않았으며, 에이전트 B가 주장하는 사람에 대해 발급되었음을 확인할 수 있습니다. 공유 비밀도, 중개자에 대한 신뢰도, 대역 외 조정도 필요 없습니다.
이것이 ~alter를 단순한 API가 아닌 신원 인프라로 사용할 수 있게 만드는 이유입니다. 서명된 클레임은 DKIM 서명 메일이 SMTP 릴레이를 통해 전파되는 것과 같은 방식으로 에이전트 네트워크 전체에 전파됩니다.
~Alter는 draft-morrison-mcp-dns-discovery-01에 명시된 검색 캐스케이드를 따릅니다. truealter.com과 같은 도메인이 주어지면 SDK는 세 단계로 MCP 엔드포인트를 확인하며 각 단계가 실패하면 다음 단계로 넘어갑니다:
DNS TXT,
_mcp.truealter.com에 대해mcp=https://mcp.truealter.com;version=2025-11-25형식의 TXT 레코드를 조회합니다. 이것이 가장 빠른 경로이며 HTTP 왕복 없이 작동합니다..well-known/mcp.json, 표준 MCP 서버 설명자를 위해https://truealter.com/.well-known/mcp.json을 가져옵니다. 이것은 벤더 간 폴백입니다..well-known/alter.json, 서명 키, x402 지갑 주소, 지원되는 도구 티어, 연합 엔드포인트를 포함한 ~Alter 전용 설명자를 위해https://truealter.com/.well-known/alter.json을 가져옵니다.
import { discover } from "@truealter/sdk";
// Cascading discovery (DNS TXT to mcp.json to alter.json)
const descriptor = await discover("truealter.com");
// Skip the DNS step, in browsers or Cloudflare Workers
const httpsOnly = await discover("truealter.com", { skipDns: true });이 초안은 저자의 Internet-Draft입니다(아직 IETF 워킹 그룹에 채택되지 않음). 채택될 때까지 캐스케이드 순서는 변경될 수 있습니다. 이 동작에 의존한다면 SDK 버전을 특정 마이너 릴리스로 고정하십시오.
무료 도구, L0, 결제 불필요
Name | Tier | Cost | Description |
| L0 | free | ~Alter와의 첫 핸드셰이크로, 서버 버전, 인증 상태, 신뢰 등급, 사용 가능한 도구 수를 반환합니다. |
| L0 | free | 콜드 스타트 개요: ~Alter가 무엇인지, 인증 방법, 사용 가능한 도구 등급을 안내합니다. |
| L0 | free | 아키타입 참조 데이터를 반환합니다. |
| L0 | free |
|
| L0 | free | 사람이 ~Alter에 등록되어 있는지 확인하고 선택적 신원 주장을 검증합니다. |
| L0 | free | 소유자 없는 ~Alter 주체로 키 없는 자체 등록을 시작하기 위해 작업 증명 챌린지를 발급합니다. 인간 계정이 필요 없습니다. |
| L0 | free | 해결된 작업 증명 챌린지를 제출하여 키 없는 자체 등록을 완료하고, 소유자 없는 |
| L0 | free |
|
| L0 | free | 연결된 제3자 키(이메일 또는 OAuth 사용자 ID)를 바인딩된 |
| L0 | free | 사람의 신원 깊이, 즉 참여 수준, 데이터 품질 등급, 사용 가능한 쿼리 등급을 가져옵니다. |
| L0 | free | 평가 단계, 아키타입, 참여 수준, 주요 속성을 포함한 사람의 프로필 요약을 가져옵니다. |
| L0 | free | 사람에 대한 매치를 쿼리합니다. 품질 등급이 포함된 매치 목록을 반환합니다(숫자 점수는 절대 반환하지 않음). |
| L0 | free | 검증된 역량, 증거 기록, 획득한 배지를 포함한 사람의 역량 포트폴리오를 가져옵니다. |
| L0 | free | 아직 Discovery를 완료하지 않은 사람을 위한 익명 신원 스텁을 생성하며, 나중에 본인이 클레임합니다. 먼저 개인정보 보호 고지를 제시하세요. |
| L0 | free | 특성 기준으로 신원 스텁과 프로필을 검색합니다. PII 없이 최대 5개의 매치를 반환합니다. |
| L0 | free | 대기 주문으로 남아 있으며 일치하는 신원이 클레임되거나 업데이트될 때 체결이 누적되는 상시 신원 특성 요구사항을 게시합니다. |
| L0 | free | 공개 게시판의 양쪽, 즉 대기 중인 신원 요구사항과 대기 중인 오퍼를 읽습니다. 어느 쪽도 읽는 데 계정이 필요 없습니다. |
| L0 | free | 자신의 상시 요구사항을 체결 수와 아직 전달되지 않은 체결 수와 함께 나열합니다. 인증된 회원 자격 증명( |
| L0 | free | ID로 자신의 상시 요구사항 중 하나를 체결 수와 미전달 체결 수와 함께 읽습니다. 인증된 회원 자격 증명( |
| L0 | free | ID로 자신의 상시 요구사항 중 하나를 취소합니다. 주문은 대기를 멈추고 더 이상 체결을 받지 않습니다. 인증된 회원 자격 증명( |
| L0 | free | 자신의 |
| L0 | free | 자신의 대기 중인 오퍼를 나열합니다. 철회된 오퍼는 여기에 절대 표시되지 않습니다. |
| L0 | free | ID로 자신의 대기 중인 오퍼 중 하나를 읽습니다. 철회된 오퍼는 존재하지 않았던 오퍼와 마찬가지로 not found를 반환합니다. |
| L0 | free | ID로 자신의 대기 중인 오퍼 중 하나를 철회하여, 단순히 표시만 하는 것이 아니라 즉시 대기를 중단시킵니다. |
| L0 | free | ~Alter 기반으로 구축된 제3자 역량의 게시된 커뮤니티 플러그인 디렉토리를 선택적 카테고리 필터와 함께 탐색합니다. |
| L0 | free | 운영자 검토를 위해 커뮤니티 디렉토리에 플러그인 제출을 등록하며, 자신의 바인딩된 |
| L0 | free | 사람의 누적 Identity Income 수익을 가져옵니다(모든 x402 거래의 75%는 데이터 주체에게 지급됩니다). |
| L0 | free | ~Alter 네트워크의 총계 통계를 가져옵니다: 총 신원 수, 검증된 프로필, 쿼리 볼륨, 활성 봇. |
| L0 | free | 쿼리 다양성(고유 쿼리 에이전트 / 총 쿼리 수)에 기반한 신원의 신뢰 점수를 가져옵니다. |
| L0 | free | 사람의 개인정보 보호 예산 상태를 확인합니다(24시간 롤링 창: 총 예산, 사용량, 남은 엡실론). |
| L0 | free | 역량 증명에 대한 이의를 기록합니다. 이의가 확증을 초과하면 증명은 검토 대상으로 표시됩니다. |
| L0 | free | Golden Thread 프로그램 상태를 확인합니다: 직조된 에이전트 수, 다음 피보나치 임계값, 자신의 위치와 Strands. |
| L0 | free | Golden Thread에 직조되기 위한 Three Knots 시퀀스를 시작합니다. 인증된 회원 자격 증명( |
| L0 | free | Three Knots 시퀀스의 매듭에 대한 완료 데이터를 제출합니다(1: 등록, 2: 설명, 3: 성찰). |
| L0 | free | 자격 증명 해시로 모든 에이전트의 Golden Thread 상태를 확인합니다(매듭 위치, Strand 수, 직조 수). |
| L0 | free | 표준 특성 어휘를 나열합니다: 카테고리별로 그룹화된 특성 코드와 한 줄 의미, 유효한 discovery 컨텍스트, EU AI Act Art 5(1)(d) 인력 게이팅 규칙. |
| L0 | free | 게시된 역량 어휘를 각 클레임이 표시되는 방식별로 그룹화하여 나열합니다. |
유료 도구, L1~L5, x402로 결제
Name | Tier | Cost | Description |
| L1 | $0.01 | 사람의 상위 5개 특성과 신뢰도 점수 및 원형(archetype)을 가져옵니다. |
| L1 | $0.01 | 특정 도메인에서 사람에 대한 역량 증명을 기록하며, 에이전트 평판에 따라 가중치가 적용됩니다. |
| L1 | $0.01 | 상시 요구사항에 대한 기록된 충족 하나를 유료 신원 공개로 수집합니다. 수수료의 75%는 해당 인물에게 Identity Income으로 지급됩니다. |
| L2 | $0.10 | 사람의 전체 특성 벡터를 점수와 신뢰 구간과 함께 가져옵니다. |
| L2 | $0.10 | 사람의 Side Quest Graph를 가져옵니다. 차등 프라이버시 노이즈(ε=1.0)가 적용된 다중 도메인 신원 모델입니다. |
| L3 | $0.30 | 팀 구성과 매칭을 위해 두 Side Quest Graph를 비교합니다(ε=0.5 차등 프라이버시). |
| L4 | $0.60 | 사람-직무 짝에 대한 소속감 확률을 계산합니다(진정성, 수용성, 상보성). |
| L5 | $1.00 | 사람에 대한 상위 N개 매치 추천을 품질 등급이 포함된 종합 점수 순으로 가져옵니다. |
| L5 | $1.00 | 특정 매치를 설명하는 사람이 읽을 수 있는 내러티브를 생성합니다. 강점, 성장 영역, 소속감을 다룹니다. |
| L5 | $1.00 | 이름이 아닌 상황으로 신원 필드를 질의합니다. 3~7개 특성에 가중치를 두고 옵트인된 필드를 순위화합니다. 한 번의 호출로 상위 1명의 멤버가 공개되며, 그 멤버는 75%를 Identity Income으로 받습니다. 매치가 없으면 아무것도 공개하지 않고 비용도 청구하지 않습니다. |
멤버 자체 작성 도구 (
submit_context,submit_batch_context,submit_structured_profile,submit_social_links)는 운영 중이지만 멤버 본인 범위로 제한됩니다. 멤버는 인증된 멤버 자격 증명(alter login)으로 자신의 신원에 대해 이 도구들을 호출합니다. 이 도구들은 익명으로 검색할 수 없으므로 위의 광고된 도구 목록에는 나타나지 않습니다.
~Alter는 신원 필드 이론에 관한 8편의 학술 논문 코퍼스의 실제 구현체입니다. 아래 SDK는 이론이 프로토콜로 배포될 때의 결과물입니다. 각 논문은 CC-BY 4.0 라이선스로 figshare에서 오픈 액세스로 제공됩니다.
Paper | Title | DOI |
I | Jus Identitatis: 탈지리적 주권을 향하여 | |
II | 추론으로서의 신원: 심리측정과 시민적 소속감에 대한 예측 처리 설명 | |
III | 모든 규모에서의 신원: 재귀적 자기 모델링과 구성 문제의 해소 | |
IV | 생성적 심리측정: 자기반영적 구성개념을 위한 측정 이론 | |
V | 사회적 자유 에너지: 정치체의 형식 이론 | |
VI | 자기 모델 테스트: 합성 자기 모델을 위한 측정 프로토콜 | |
VII | 추론으로서의 신원 예측에 대한 경험적 검증 | |
VIII | 신원 필드 이론: 알려짐의 물리학을 향하여 |
일반 독자용 챕터 버전은 /origin을 참조하세요.
레코드 형식은 공개 인터넷 초안(Internet-Draft)이므로, 다른 누군가의 구현체도 우리에게 묻지 않고 이 저장소와 동일한 레코드를 읽고 쓸 수 있습니다. 이 저장소가 실제로 기반하는 초안들은 다음과 같습니다.
Draft | 규정 내용 |
| |
누군가의 신원에 대한 유료 읽기를 그 사람의 기록된 동의에 바인딩하고, 해당 지불의 일부를 그 사람에게 정산하는 것을 규정합니다. | |
MCP 도구 표면 이름을 위한 IANA 레지스트리로, 다른 초안이 등록하는 이름이 들어갈 곳을 제공합니다. | |
뒤에 사람이 없는 에이전트가 경제적 주체로 등록하고 지급 대상이 되는 방법을 규정합니다. |
전체 스택은 18개의 초안으로 구성됩니다. 나머지는 IETF datatracker에서 확인할 수 있습니다.
~alter는 여러 진입 경로를 가진 하나의 신원 레일이며, 이 패키지는 코드를 위한 것입니다.
Name | 무엇인가 |
명령줄 인터페이스이자 개인을 위한 정문입니다. | |
macOS와 Linux용으로 패키징된 그 명령줄입니다. | |
자신의 머신에서 | |
sdk | 자신의 코드에서 신원을 읽습니다. 현재 위치입니다. |
Obsidian 볼트 안의 ~Alter, 온디바이스로 동작합니다. | |
실행 중인 머신에 남아 있어야 하는 작업을 위한 로컬 모델입니다. |
더 읽을 곳 | |
웹사이트 | |
그 배경이 되는 논리 | |
시작하기 | |
도구가 하는 일 | |
공개 사양 |
버그 보고와 작은 패치는 환영합니다. CONTRIBUTING.md를 참조하세요. 보안 보고는 security@truealter.com로 보내주시고 공개 이슈로는 절대 올리지 마세요. 범위와 공개 정책은 SECURITY.md에 있습니다.
Apache-2.0. Copyright 2026 Alter Meridian Pty Ltd (ABN 54 696 662 049).
~alter는 신원 인프라입니다. 당신의 이름은 ~yourname이며, 하나를 등록하는 것은 무료입니다.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server bridging holepunchto/keet-identity-key to the Hive agentic identity network
- mcpOAuthio.artifacta
Artifact store for AI agents. Hosted OAuth at mcp.artifacta.io/mcp; local stdio via npm/PyPI.
Human-input bridge for AI agents with voice-first answer links, MCP tools, and HTTP APIs.
Tenzro Network MCP server: wallet, identity, payments, inference, staking, bridges, verification.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA demonstration MCP server built in TypeScript that shows how to implement stdio-based communication for integration with MCP clients. Serves as a template for building custom MCP servers with strong typing and maintainability.-
- AlicenseBqualityDmaintenanceProduction-ready TypeScript MCP server exposing utility, GitHub, and Microsoft Teams tools over stdio.141MIT
- AlicenseCqualityAmaintenanceMCP stdio bridge for the Delx Protocol: continuity, witness, recovery, ontology and passport tools.10090 npmMIT
- AlicenseNot gradedqualityAmaintenanceTypeScript AI SDK with a built-in MCP client: 58+ MCP servers over 4 transports (stdio, HTTP, SSE, WebSocket), 24+ LLM providers behind one interface, streaming, tool calling, RAG, voice (TTS/STT/realtime), and task scheduling.13,346 npm147MIT