~Alter SDK
~alter SDK
Считывайте идентичность из своего кода с согласия человека и с его долей.
Что такое ~alter? · Установка · От нуля до платного чтения
Что такое ~alter?
Большинство людей, которые читают о ~Alter, приходят сюда ради собственной идентичности, а вы — нет. Вы создаёте нечто, что должно знать, кто его пользователи, а значит, именно вы — сторона, которая спрашивает, хранит ответ и несёт его дальше.
Спросить — самая дешёвая часть. Дальше идут шифрование в состоянии покоя, график хранения, пересмотр доступа, запрос на удаление, который приходит спустя долгое время после того, как они перестали вами пользоваться, и уведомление, которое вы отправляете, если что-то из этого утечёт. Вы несёте всё это за данные, единственным источником которых был кто-то, вводивший текст в созданное вами поле, никем не проверенные и устаревшие с первого дня.
~Alter — это запись, хранящаяся под именем, которым владеет человек, и её содержимое прочитано из того, что человек делал, а не введено в форму. Ваш код читает эту запись в тот момент, когда ему нужен ответ, и ничего не хранит после возврата вызова. Человек заранее решает, что ваше приложение может видеть, и это переносит разговор о согласии на их сторону, а не на вашу.
Проверка того, что кто-то существует, ничего не стоит и не раскрывает ничего, кроме самого факта существования. Чтение, которое идёт дальше, платное, и три четверти того, что вы платите, доходит до человека, чью запись прочитали. Вы покупаете ответ на столько времени, сколько он вам нужен, а не берёте его на хранение.
Ни во что из этого не нужно верить на слово. Передайте это ИИ, которым вы уже пользуетесь, и пусть он проведёт вас через это вашими словами.
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-мост. А этот пакет ваше приложение импортирует, когда хэндл уже есть.
Под капотом это тонкий клиент поверх MCP-сервера ~Alter, говорящий на спецификации MCP 2025-11-25 через Streamable HTTP и JSON-RPC 2.0. Он поддерживает расчёты x402 и проверку происхождения ES256, зависит от @noble/ed25519 и @noble/hashes и больше ни от чего, и поставляется в виде ESM и CJS.
Сорок семь инструментов публично анонсированы, и тридцать восемь из них находятся на бесплатном уровне. Бесплатное — не то же самое, что открытое. Двенадцать из сорока семи отвечают вызывающему без каких-либо учётных данных, а всё, что читает идентичность, сначала требует ~handle.
Ваш IAM-стек отвечает на вопрос, кто вошёл в систему. Он может работать поверх этого без изменений.
Установка
npm install @truealter/sdkNode 18 или новее. Он также работает на Deno, Bun, Cloudflare Workers и в современных браузерах и не несёт собственной зависимости от кошелька.
От нуля до платного чтения
Первый шаг работает вообще без ничего. Со второго шага нужен ~handle, который ничего не стоит и не требует человеческого аккаунта, а короткий раздел между ними — о том, как его выпустить. Платный шаг в конце — единственный, который стоит денег, и единственный, который кому-то платит.
1. Подключение без ничего
import { AlterClient } from "@truealter/sdk";
const alter = new AlterClient();Конечная точка по умолчанию — https://mcp.truealter.com/api/v1/mcp. Каждый бесплатный инструмент отвечает анонимному клиенту. Рабочий пример в examples/hello-agent/ подключается вообще без учётных данных.
Перед вторым шагом выпустите ~handle
Двенадцать инструментов отвечают вызывающему без учётных данных, и это поверхность обнаружения и регистрации, а не бесплатный уровень. Всё, что читает идентичность, требует ~handle, и то же самое нужно всему, что действует от вашего имени. Агент выпускает собственный ~handle через MCP с помощью register_autonomous и register_autonomous_challenge — ни то, ни другое ничего не стоит и не требует человеческого аккаунта за собой. Человек один раз запускает alter login, который записывает учётные данные участника в ~/.config/alter/session.json. В любом случае хостируемая конечная точка ориентирована на bearer-токены, так что CLI-мост читает эту сессию за вас, и нигде не нужно выпускать или вставлять ключ. Если вы создаёте клиент сами, передайте те же учётные данные сессии как необязательный apiKey.
2. Узнайте, известен ли кто-то
const verified = await alter.verify("~alter");Хэндл, электронная почта или идентификатор. Это проверка, которая ничего не стоит и не раскрывает ничего, кроме факта существования человека, — бесплатный уровень по замыслу.
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 },
},
});Глубина показывает, сколько записи существует и какие уровни вам открыты. Поиск по чертам возвращает не более пяти результатов и никаких персонально идентифицирующих данных.
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 приходит так же, как любой другой необработанный статус, — как AlterError с кодом NETWORK, чьё сообщение содержит статус и первые 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) |
|
|
| текущий |
|
|
Они ОБЯЗАТЕЛЬНЫ на каждой аутентифицированной серверной конечной точке, чтобы сервер мог обеспечивать свою минимальную поддерживаемую версию клиента. Заголовок 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
Командная строка находится в @truealter/cli, а не в этом пакете SDK:
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 с расчётом on-chain.
Процесс повторных попыток
Клиент вызывает платный инструмент без заголовка оплаты.
Сервер отвечает
402 Payment Requiredс требованием оплаты (сумма, получатель, актив, сеть).Клиент подписывает и отправляет перевод USDC в Base L2, прикрепляет доказательство и повторяет попытку.
Сервер проверяет доказательство, выполняет инструмент, подписывает ответ с помощью ES256 и возвращает его.
AlterRouter выполняет разделение on-chain в той же транзакции. Субъект данных получает Identity Income напрямую; ~Alter получает только свою долю протокола. Никакого кастодиана, никакого брокера.
SDK автоматически обрабатывает шаги 2–4, когда передаётся X402Client с настроенным signer.
Структура уровней
Микроплатежи x402 на уровнях доверия L0–L5. Цена за вызов видна после 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 отклоняет вызов с AlterError до вызова подписанта, и никакая on-chain транзакция не отправляется.
Каждый ответ от инструмента средней или высокой чувствительности поставляется с ES256 JWS в _meta.provenance. Подпись покрывает каноническую 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+)
Каждая оболочка происхождения может содержать подсказку verify_at, указывающую SDK, откуда получать JWKS. Поскольку эта подсказка предоставляется сервером, враждебный MCP-сервер мог бы иначе направить её на JWKS, контролируемый атакующим, и пройти проверку ES256 с помощью собственного ключа подписи. SDK ограничивает verify_at через список разрешённых имён хостов, по умолчанию api.truealter.com и mcp.truealter.com, и безусловно отклоняет URL-адреса http://. Интеграторы, разворачивающие собственное решение, могут расширить этот список, не форкая SDK, через verifyAtAllowlist либо в AlterClient, либо при прямом вызове verifyProvenance().
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 может воспроизвести JWS против опубликованных ключей ~Alter и подтвердить, не связываясь с ~Alter снова, что полезная нагрузка подлинна, не изменена и выпущена для человека, о котором, как утверждает агент B, идёт речь. Никакого общего секрета, никакого доверия к посреднику, никакой внешней координации.
Именно это делает ~alter пригодным для использования в качестве инфраструктуры идентичности, а не просто API: подписанные утверждения распространяются по сетям агентов так же, как письма, подписанные DKIM, распространяются через SMTP-релеи.
~Alter следует каскаду обнаружения, описанному в draft-morrison-mcp-dns-discovery-01. Для такого домена, как truealter.com, SDK разрешает конечную точку MCP за три шага, переходя к следующему при каждой неудаче:
DNS TXT, запросите
_mcp.truealter.comдля TXT-записи видаmcp=https://mcp.truealter.com;version=2025-11-25. Это самый быстрый путь и работает без HTTP-запроса..well-known/mcp.json, получитеhttps://truealter.com/.well-known/mcp.jsonдля стандартного дескриптора MCP-сервера. Это запасной вариант для разных поставщиков..well-known/alter.json, получитеhttps://truealter.com/.well-known/alter.jsonдля дескриптора, специфичного для ~Alter, включая ключи подписи, адрес кошелька x402, поддерживаемые уровни инструментов и конечные точки федерации.
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 });Этот черновик является интернет-черновиком автора (ещё не принят рабочей группой IETF); до принятия порядок каскада может измениться. Зафиксируйте версию SDK на конкретном минорном выпуске, если вы зависите от этого поведения.
Бесплатные инструменты, L0, без оплаты
Название | Уровень | Стоимость | Описание |
| L0 | free | Первое рукопожатие с ~Alter, возвращающее версию сервера, статус аутентификации, ваш уровень доверия и количество доступных инструментов. |
| L0 | free | Обзор для холодного старта: что такое ~Alter, как пройти аутентификацию и какие уровни инструментов вам доступны. |
| L0 | free | Возвращает справочные данные по архетипам. |
| L0 | free | Разрешает |
| L0 | free | Проверяет, зарегистрирован ли человек в ~Alter, и подтверждает дополнительные идентификационные утверждения. |
| L0 | free | Выдаёт proof-of-work задание для начала бесключевой самостоятельной регистрации в качестве принципала ~Alter без владельца; человеческая учётная запись не требуется. |
| L0 | free | Завершает бесключевую самостоятельную регистрацию, отправляя решённое proof-of-work задание, создавая |
| L0 | free | Читает, открыт ли |
| L0 | free | Разрешает связанный сторонний ключ (email или OAuth user-id) до привязанного |
| L0 | free | Получает глубину идентичности человека: уровень вовлечённости, уровень качества данных и доступные уровни запросов. |
| L0 | free | Получает сводку профиля человека, включая этап оценки, архетип, уровень вовлечённости и ключевые атрибуты. |
| L0 | free | Запрашивает совпадения для человека. Возвращает список совпадений с уровнями качества (никогда не числовыми оценками). |
| L0 | free | Получает портфель компетенций человека, включая подтверждённые компетенции, записи доказательств и полученные значки. |
| L0 | free | Создаёт анонимную заглушку идентичности для человека, который ещё не завершил Discovery; он заявит её позже. Сначала покажите уведомление о конфиденциальности. |
| L0 | free | Ищет заглушки идентичности и профили по критериям признаков. Возвращает до 5 совпадений без PII. |
| L0 | free | Размещает постоянное требование к признакам идентичности, которое покоится как ордер и накапливает исполнения по мере заявления или обновления подходящих идентичностей. |
| L0 | free | Читает обе стороны публичной доски: покоящиеся требования к идентичности и покоящиеся предложения; для чтения не требуется учётная запись. |
| L0 | free | Перечисляет ваши собственные постоянные требования с количеством исполнений и числом ещё не доставленных исполнений. Требуется аутентифицированное членское удостоверение ( |
| L0 | free | Читает одно из ваших постоянных требований по id, с количеством его исполнений и не доставленных исполнений. Требуется аутентифицированное членское удостоверение ( |
| L0 | free | Отменяет одно из ваших постоянных требований по id; ордер перестаёт покоиться и не принимает дальнейших исполнений. Требуется аутентифицированное членское удостоверение ( |
| L0 | free | Размещает подписанное истекающее предложение товаров, услуг, возможностей или результатов от вашего собственного |
| L0 | free | Перечисляет ваши собственные покоящиеся предложения; отозванное предложение здесь никогда не появляется. |
| L0 | free | Читает одно из ваших покоящихся предложений по id; отозванное предложение возвращает «не найдено», так же как и не существовавшее. |
| L0 | free | Отзывает одно из ваших покоящихся предложений по id, немедленно прекращая его покой, а не просто помечая его. |
| L0 | free | Просматривает опубликованный каталог плагинов сообщества — сторонних возможностей, созданных на ~Alter, с необязательным фильтром по категориям. |
| L0 | free | Подаёт заявку на плагин в каталог сообщества для проверки оператором, приписанную к вашему собственному привязанному |
| L0 | free | Получает накопленный доход Identity Income для человека (75% каждой транзакции x402 идёт субъекту данных). |
| L0 | free | Получает агрегированную статистику сети ~Alter: всего идентичностей, подтверждённых профилей, объём запросов, активных ботов. |
| L0 | free | Получает оценку доверия для идентичности на основе разнообразия запросов (уникальные запрашивающие агенты / всего запросов). |
| L0 | free | Проверяет статус бюджета конфиденциальности для человека (скользящее окно 24 часа: общий бюджет, потрачено, оставшийся epsilon). |
| L0 | free | Фиксирует спор против аттестации компетенции; если споров больше, чем подтверждений, аттестация помечается для проверки. |
| L0 | free | Проверяет статус программы Golden Thread: вплетённые агенты, следующий порог Фибоначчи, ваша позиция и Strands. |
| L0 | free | Начинает последовательность Three Knots для вплетения в Golden Thread. Требуется аутентифицированное членское удостоверение ( |
| L0 | free | Отправляет данные о завершении узла в последовательности Three Knots (1: register, 2: describe, 3: reflect). |
| L0 | free | Проверяет статус Golden Thread любого агента по хешу его удостоверения (позиция узла, количество Strand, количество плетений). |
| L0 | free | Перечисляет канонический словарь признаков: коды признаков, сгруппированные по категориям с однострочной семантикой, допустимые контексты discovery и правила ограничения рабочей силы по ст. 5(1)(d) EU AI Act. Прочтите это перед составлением |
| L0 | free | Перечисляет опубликованный словарь компетенций, сгруппированный по способу выражения каждого утверждения, как справочник перед составлением |
Платные инструменты, L1–L5, оплата через x402
Имя | Уровень | Стоимость | Описание |
| L1 | $0.01 | Получить 5 главных черт личности с оценками уверенности и архетипом. |
| 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 черт и ранжируйте поле с согласием. Один вызов раскрывает одного участника с наивысшим рейтингом; этот участник получает 75% как Identity Income. При отсутствии совпадений ничего не раскрывается и не взимается плата. |
Инструменты самостоятельной записи участника (
submit_context,submit_batch_context,submit_structured_profile,submit_social_links) работают, но ограничены самим участником: участник вызывает их для своей собственной личности с аутентифицированным учётным данным участника (alter login). Они не обнаруживаются анонимно, поэтому не появляются в приведённом выше списке рекламируемых инструментов.
~Alter — это рабочая реализация академического корпуса из восьми статей по теории поля идентичности. SDK ниже — это то, что получается, когда теория поставляется как протокол. Каждая статья находится в открытом доступе на figshare под лицензией CC-BY 4.0.
Статья | Название | DOI |
I | Jus Identitatis: К постгеографическому суверенитету | |
II | Идентичность как вывод: предиктивная обработка психометрических измерений и гражданской принадлежности | |
III | Идентичность на каждом уровне: рекурсивное самомоделирование и решение проблемы композиции | |
IV | Генеративная психометрика: теория измерений для саморефлексивных конструктов | |
V | Социальная свободная энергия: формальная теория политии | |
VI | Тест самомодели: протокол измерения для синтетических самомоделей | |
VII | Эмпирическая валидация предсказаний идентичности как вывода | |
VIII | Теория поля идентичности: к физике быть известным |
Для версии глав для широкой аудитории см. /origin.
Форматы записей — открытые Internet-Drafts, поэтому чужая реализация может читать и записывать те же записи, что и эта, не спрашивая нас. Это черновики, на которых фактически основан этот репозиторий.
Черновик | Что он определяет |
DNS-записи, публикующие | |
Привязка платного чтения чьей-либо идентичности к их собственному записанному согласию и выплата части этого платежа им. | |
Реестр IANA для имён поверхностей инструментов MCP, чтобы имена, регистрируемые другими черновиками, имели место. | |
Как агент без человека за ним регистрируется как экономический принципал и становится правомочным получать оплату. |
Восемнадцать черновиков составляют весь стек. Остальные находятся на IETF datatracker.
~alter — это один рельс идентичности с несколькими способами входа, и этот пакет — для кода.
Имя | Что это |
Командная строка и входная дверь для человека. | |
Эта командная строка, упакованная для macOS и Linux. | |
Демон, который поддерживает ваш | |
sdk | Чтение идентичности из вашего собственного кода. Вы здесь. |
~Alter внутри хранилища Obsidian, на устройстве. | |
Локальные модели для работы, которая должна оставаться на машине, где она выполняется. |
Где узнать больше | |
Веб-сайт | |
Обоснование | |
Начало работы | |
Что делают инструменты | |
Открытые спецификации |
Приветствуются отчёты об ошибках и небольшие исправления, см. CONTRIBUTING.md. Отчёты о безопасности отправляются на security@truealter.com и никогда не публикуются в открытых issue, с областью и политикой раскрытия в SECURITY.md.
Apache-2.0. Авторское право 2026 Alter Meridian Pty Ltd (ABN 54 696 662 049).
~alter — это инфраструктура идентичности. Ваше имя — ~yourname, и получить его бесплатно.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
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.100280MIT
- 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.20,815129MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/true-alter/sdk'
If you have feedback or need assistance with the MCP directory API, please join our Discord server