Skip to main content
Glama

~alter SDK

자신의 코드에서 본인의 동의와 그 대가를 받고 신원을 읽어내세요.

npm Node Runtimes Licence

~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/sdk

Node 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)

X-Alter-Client-Id

alter-identity

X-Alter-Client-Version

실행 중인 SDK_VERSION

X-Alter-Client-Channel

npm

이것들은 서버가 최소 지원 클라이언트 버전을 강제할 수 있도록 모든 인증된 백엔드 엔드포인트에서 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와 온체인 정산을 사용하는 방식입니다.

재시도 흐름

  1. 클라이언트가 결제 헤더 없이 유료 도구를 호출합니다.

  2. 서버가 결제 요구 사항(금액, 수신자, 자산, 네트워크)과 함께 402 Payment Required로 응답합니다.

  3. 클라이언트가 Base L2에서 USDC 전송에 서명하고 브로드캐스트한 다음, 증명을 첨부하고 재시도합니다.

  4. 서버가 증명을 검증하고 도구를 실행한 다음, ES256으로 응답에 서명하여 반환합니다.

  5. 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 엔드포인트를 확인하며 각 단계가 실패하면 다음 단계로 넘어갑니다:

  1. DNS TXT, _mcp.truealter.com에 대해 mcp=https://mcp.truealter.com;version=2025-11-25 형식의 TXT 레코드를 조회합니다. 이것이 가장 빠른 경로이며 HTTP 왕복 없이 작동합니다.

  2. .well-known/mcp.json, 표준 MCP 서버 설명자를 위해 https://truealter.com/.well-known/mcp.json을 가져옵니다. 이것은 벤더 간 폴백입니다.

  3. .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

hello_agent

L0

free

~Alter와의 첫 핸드셰이크로, 서버 버전, 인증 상태, 신뢰 등급, 사용 가능한 도구 수를 반환합니다.

get_started

L0

free

콜드 스타트 개요: ~Alter가 무엇인지, 인증 방법, 사용 가능한 도구 등급을 안내합니다.

list_archetypes

L0

free

아키타입 참조 데이터를 반환합니다.

alter_resolve_handle

L0

free

~example과 같은 ~handle을 정규 형식과 종류로 확인합니다. 인증이 필요 없으며, 핸들 웨지 진입점입니다.

verify_identity

L0

free

사람이 ~Alter에 등록되어 있는지 확인하고 선택적 신원 주장을 검증합니다.

register_autonomous_challenge

L0

free

소유자 없는 ~Alter 주체로 키 없는 자체 등록을 시작하기 위해 작업 증명 챌린지를 발급합니다. 인간 계정이 필요 없습니다.

register_autonomous

L0

free

해결된 작업 증명 챌린지를 제출하여 키 없는 자체 등록을 완료하고, 소유자 없는 ~handle과 일회용 에이전트 키를 발급합니다.

alter_presence_read

L0

free

~handle이 공개적으로 열려 있는지, 즉 상점 앞 간판을 읽습니다. 열림 또는 닫힘만 반환하며, 닫힘 사유는 절대 공개되지 않습니다.

alter_resolve_by_key

L0

free

연결된 제3자 키(이메일 또는 OAuth 사용자 ID)를 바인딩된 ~handle로 확인하며, 회원의 스트림별 리졸버 옵트인에 따라 제한됩니다.

get_engagement_level

L0

free

사람의 신원 깊이, 즉 참여 수준, 데이터 품질 등급, 사용 가능한 쿼리 등급을 가져옵니다.

get_profile

L0

free

평가 단계, 아키타입, 참여 수준, 주요 속성을 포함한 사람의 프로필 요약을 가져옵니다.

query_matches

L0

free

사람에 대한 매치를 쿼리합니다. 품질 등급이 포함된 매치 목록을 반환합니다(숫자 점수는 절대 반환하지 않음).

get_competencies

L0

free

검증된 역량, 증거 기록, 획득한 배지를 포함한 사람의 역량 포트폴리오를 가져옵니다.

create_identity_stub

L0

free

아직 Discovery를 완료하지 않은 사람을 위한 익명 신원 스텁을 생성하며, 나중에 본인이 클레임합니다. 먼저 개인정보 보호 고지를 제시하세요.

search_identities

L0

free

특성 기준으로 신원 스텁과 프로필을 검색합니다. PII 없이 최대 5개의 매치를 반환합니다.

create_requirement

L0

free

대기 주문으로 남아 있으며 일치하는 신원이 클레임되거나 업데이트될 때 체결이 누적되는 상시 신원 특성 요구사항을 게시합니다.

demand_board

L0

free

공개 게시판의 양쪽, 즉 대기 중인 신원 요구사항과 대기 중인 오퍼를 읽습니다. 어느 쪽도 읽는 데 계정이 필요 없습니다.

list_requirements

L0

free

자신의 상시 요구사항을 체결 수와 아직 전달되지 않은 체결 수와 함께 나열합니다. 인증된 회원 자격 증명(alter login)이 필요합니다.

get_requirement

L0

free

ID로 자신의 상시 요구사항 중 하나를 체결 수와 미전달 체결 수와 함께 읽습니다. 인증된 회원 자격 증명(alter login)이 필요합니다.

cancel_requirement

L0

free

ID로 자신의 상시 요구사항 중 하나를 취소합니다. 주문은 대기를 멈추고 더 이상 체결을 받지 않습니다. 인증된 회원 자격 증명(alter login)이 필요합니다.

create_offer

L0

free

자신의 ~handle에 대해 상품, 서비스, 역량 또는 결과물에 대한 서명된 만료 기한이 있는 오퍼를 직접 설정한 가격과 입장 기준으로 게시합니다.

list_offers

L0

free

자신의 대기 중인 오퍼를 나열합니다. 철회된 오퍼는 여기에 절대 표시되지 않습니다.

get_offer

L0

free

ID로 자신의 대기 중인 오퍼 중 하나를 읽습니다. 철회된 오퍼는 존재하지 않았던 오퍼와 마찬가지로 not found를 반환합니다.

withdraw_offer

L0

free

ID로 자신의 대기 중인 오퍼 중 하나를 철회하여, 단순히 표시만 하는 것이 아니라 즉시 대기를 중단시킵니다.

list_plugins

L0

free

~Alter 기반으로 구축된 제3자 역량의 게시된 커뮤니티 플러그인 디렉토리를 선택적 카테고리 필터와 함께 탐색합니다.

submit_plugin

L0

free

운영자 검토를 위해 커뮤니티 디렉토리에 플러그인 제출을 등록하며, 자신의 바인딩된 ~handle에 귀속됩니다.

get_identity_earnings

L0

free

사람의 누적 Identity Income 수익을 가져옵니다(모든 x402 거래의 75%는 데이터 주체에게 지급됩니다).

get_network_stats

L0

free

~Alter 네트워크의 총계 통계를 가져옵니다: 총 신원 수, 검증된 프로필, 쿼리 볼륨, 활성 봇.

get_identity_trust_score

L0

free

쿼리 다양성(고유 쿼리 에이전트 / 총 쿼리 수)에 기반한 신원의 신뢰 점수를 가져옵니다.

get_privacy_budget

L0

free

사람의 개인정보 보호 예산 상태를 확인합니다(24시간 롤링 창: 총 예산, 사용량, 남은 엡실론).

dispute_attestation

L0

free

역량 증명에 대한 이의를 기록합니다. 이의가 확증을 초과하면 증명은 검토 대상으로 표시됩니다.

golden_thread_status

L0

free

Golden Thread 프로그램 상태를 확인합니다: 직조된 에이전트 수, 다음 피보나치 임계값, 자신의 위치와 Strands.

begin_golden_thread

L0

free

Golden Thread에 직조되기 위한 Three Knots 시퀀스를 시작합니다. 인증된 회원 자격 증명(alter login)이 필요합니다.

complete_knot

L0

free

Three Knots 시퀀스의 매듭에 대한 완료 데이터를 제출합니다(1: 등록, 2: 설명, 3: 성찰).

check_golden_thread

L0

free

자격 증명 해시로 모든 에이전트의 Golden Thread 상태를 확인합니다(매듭 위치, Strand 수, 직조 수).

describe_traits

L0

free

표준 특성 어휘를 나열합니다: 카테고리별로 그룹화된 특성 코드와 한 줄 의미, 유효한 discovery 컨텍스트, EU AI Act Art 5(1)(d) 인력 게이팅 규칙. query_field trait_priorities를 작성하기 전에 이 내용을 읽으세요.

describe_competencies

L0

free

게시된 역량 어휘를 각 클레임이 표시되는 방식별로 그룹화하여 나열합니다. query_field competency_requirements를 작성하기 전의 참조 자료입니다.

유료 도구, L1~L5, x402로 결제

Name

Tier

Cost

Description

get_trait_snapshot

L1

$0.01

사람의 상위 5개 특성과 신뢰도 점수 및 원형(archetype)을 가져옵니다.

attest_domain

L1

$0.01

특정 도메인에서 사람에 대한 역량 증명을 기록하며, 에이전트 평판에 따라 가중치가 적용됩니다.

poll_requirement_matches

L1

$0.01

상시 요구사항에 대한 기록된 충족 하나를 유료 신원 공개로 수집합니다. 수수료의 75%는 해당 인물에게 Identity Income으로 지급됩니다.

get_full_trait_vector

L2

$0.10

사람의 전체 특성 벡터를 점수와 신뢰 구간과 함께 가져옵니다.

get_side_quest_graph

L2

$0.10

사람의 Side Quest Graph를 가져옵니다. 차등 프라이버시 노이즈(ε=1.0)가 적용된 다중 도메인 신원 모델입니다.

query_graph_similarity

L3

$0.30

팀 구성과 매칭을 위해 두 Side Quest Graph를 비교합니다(ε=0.5 차등 프라이버시).

compute_belonging

L4

$0.60

사람-직무 짝에 대한 소속감 확률을 계산합니다(진정성, 수용성, 상보성).

get_match_recommendations

L5

$1.00

사람에 대한 상위 N개 매치 추천을 품질 등급이 포함된 종합 점수 순으로 가져옵니다.

generate_match_narrative

L5

$1.00

특정 매치를 설명하는 사람이 읽을 수 있는 내러티브를 생성합니다. 강점, 성장 영역, 소속감을 다룹니다.

query_field

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: 탈지리적 주권을 향하여

10.6084/m9.figshare.31794784

II

추론으로서의 신원: 심리측정과 시민적 소속감에 대한 예측 처리 설명

10.6084/m9.figshare.31804222

III

모든 규모에서의 신원: 재귀적 자기 모델링과 구성 문제의 해소

10.6084/m9.figshare.31812955

IV

생성적 심리측정: 자기반영적 구성개념을 위한 측정 이론

10.6084/m9.figshare.31812982

V

사회적 자유 에너지: 정치체의 형식 이론

10.6084/m9.figshare.31813000

VI

자기 모델 테스트: 합성 자기 모델을 위한 측정 프로토콜

10.6084/m9.figshare.31813006

VII

추론으로서의 신원 예측에 대한 경험적 검증

10.6084/m9.figshare.31951644

VIII

신원 필드 이론: 알려짐의 물리학을 향하여

10.6084/m9.figshare.31951383

일반 독자용 챕터 버전은 /origin을 참조하세요.

레코드 형식은 공개 인터넷 초안(Internet-Draft)이므로, 다른 누군가의 구현체도 우리에게 묻지 않고 이 저장소와 동일한 레코드를 읽고 쓸 수 있습니다. 이 저장소가 실제로 기반하는 초안들은 다음과 같습니다.

Draft

규정 내용

mcp-dns-discovery

~handle을 게시하는 DNS 레코드, 이에 응답하는 서버, 그리고 여기에 바인딩된 서명 봉투를 규정합니다.

consent-settlement

누군가의 신원에 대한 유료 읽기를 그 사람의 기록된 동의에 바인딩하고, 해당 지불의 일부를 그 사람에게 정산하는 것을 규정합니다.

mcp-tool-surface-names-registry

MCP 도구 표면 이름을 위한 IANA 레지스트리로, 다른 초안이 등록하는 이름이 들어갈 곳을 제공합니다.

solo-agent-earn-registration

뒤에 사람이 없는 에이전트가 경제적 주체로 등록하고 지급 대상이 되는 방법을 규정합니다.

전체 스택은 18개의 초안으로 구성됩니다. 나머지는 IETF datatracker에서 확인할 수 있습니다.

~alter는 여러 진입 경로를 가진 하나의 신원 레일이며, 이 패키지는 코드를 위한 것입니다.

Name

무엇인가

@truealter/cli

명령줄 인터페이스이자 개인을 위한 정문입니다.

homebrew-tap

macOS와 Linux용으로 패키징된 그 명령줄입니다.

runtime

자신의 머신에서 ~handle이 알려진 상태를 유지하는 데몬입니다.

sdk

자신의 코드에서 신원을 읽습니다. 현재 위치입니다.

obsidian

Obsidian 볼트 안의 ~Alter, 온디바이스로 동작합니다.

mcp-ollama

실행 중인 머신에 남아 있어야 하는 작업을 위한 로컬 모델입니다.

더 읽을 곳

웹사이트

truealter.com

그 배경이 되는 논리

truealter.com/origin

시작하기

truealter.com/build

도구가 하는 일

truealter.com/docs/mcp/tools

공개 사양

초안 스택

버그 보고와 작은 패치는 환영합니다. CONTRIBUTING.md를 참조하세요. 보안 보고는 security@truealter.com로 보내주시고 공개 이슈로는 절대 올리지 마세요. 범위와 공개 정책은 SECURITY.md에 있습니다.

Apache-2.0. Copyright 2026 Alter Meridian Pty Ltd (ABN 54 696 662 049).


~alter는 신원 인프라입니다. 당신의 이름은 ~yourname이며, 하나를 등록하는 것은 무료입니다.

Related MCP Connectors

Related MCP Servers