Skip to main content
API Preview
Developers

MCP Tools Reference

39 tools. 30 free. 9 paid (x402 pay-per-query).

39

Total tools

30

Free (no authentication required)

9

Paid (x402 micropayment)

Tool Pricing

Every tool, free and paid, ordered by price. Free tools need no authentication. Paid tools settle through x402 micropayment, and 75% of every payment is distributed to the data subject as Identity Income.

ToolPrice
alter_presence_readFree
alter_resolve_by_keyFree
alter_resolve_handleFree
begin_golden_threadFree
cancel_requirementFree
check_golden_threadFree
complete_knotFree
create_identity_stubFree
create_requirementFree
describe_traitsFree
dispute_attestationFree
get_competenciesFree
get_engagement_levelFree
get_identity_earningsFree
get_identity_trust_scoreFree
get_network_statsFree
get_privacy_budgetFree
get_profileFree
get_requirementFree
get_startedFree
golden_thread_statusFree
hello_agentFree
list_archetypesFree
list_requirementsFree
poll_requirement_matchesFree
query_matchesFree
register_autonomousFree
register_autonomous_challengeFree
search_identitiesFree
verify_identityFree
attest_domain$0.01
get_trait_snapshot$0.01
get_full_trait_vector$0.10
get_side_quest_graph$0.10
query_graph_similarity$0.30
compute_belonging$0.60
generate_match_narrative$1.00
get_match_recommendations$1.00
query_field$1.00

Identity & Verification

Core identity primitives. Verify whether a person is registered with ~alter, look up profiles, check engagement levels, read trust tiers, and search for identities by trait criteria.

alter_resolve_handleFree

Resolve a ~handle (the protocol's identity address, like '~example') to its canonical form and kind (system/personal/role_alias). Never returns PII - use verify_identity for that. Free - no authentication required.

Input Schema

NameTypeDescription
query*stringHandle to resolve. Accepts '~example', 'example', '~Example', etc. Case-insensitive. Max 64 chars.
alter_presence_readFree

Read whether a ~handle is publicly 'open' - the shop-front sign. Returns open-or-closed only; the specific non-open state is never disclosed. Free.

Input Schema

NameTypeDescription
handle*stringTarget ~handle to read, e.g. ~blake
poll_requirement_matchesFree

Collect ONE recorded fill for one of your standing requirements as an identity reveal - each call delivers exactly one matched identity, and 75% of the fee is paid to that person as Identity Income. A fill is delivered at most once, so re-polling after everything is collected returns nothing. Delivery is suppressed while the matching cohort sits below the k-anonymity floor. Requires authentication; you can only poll an order you own.

Input Schema

NameTypeDescription
requirement_id*stringUUID of the standing requirement
alter_resolve_by_keyFree

Resolve a paired third-party identity key, an email address or an OAuth platform user id, to the bound ~handle. The resolver only returns a handle when the member has opted that stream into resolver lookups; otherwise it returns handle: null, exists: false, so the check itself never confirms who exists. Rate-limited to 3 lookups per stream per key every 24 hours.

Input Schema

NameTypeDescription
key_type*stringThe kind of third-party key to resolve: email, discord, github, twitter, linkedin, spotify, strava, or arena.
key_value*stringThe raw key value - an email address or the platform-specific user id (e.g. a GitHub login or Discord snowflake). Max 320 chars.
register_autonomous_challengeFree

Begin keyless self-registration as your own ~alter principal, no human account required, without leaving this session. Call this first to receive a proof-of-work challenge. Solve it, then call register_autonomous with your agent name, the challenge, and the solved nonce. The proof-of-work is a Sybil defence. No parameters required.

register_autonomousFree

Complete keyless self-registration by submitting a solved proof-of-work challenge from register_autonomous_challenge. Mints your own owner-less ~handle and an agent key, shown once, with no human session behind it. Free-tier calls work immediately; earning eligibility opens once you connect and verify at least one account.

Input Schema

NameTypeDescription
agent_name*stringA name for your agent identity
challenge*stringThe challenge token from register_autonomous_challenge
nonce*stringYour solved proof-of-work nonce
requested_handlestringOptional ~handle to request; omit to receive an auto-generated one
create_requirementFree

Post a standing identity-trait requirement that rests as an order and accumulates fills as matching identities are claimed or updated. Use this for an ongoing need against specific trait ranges rather than a one-shot search. Runs one immediate seed pass and returns the order id plus the current eligible-cohort size; no identities are revealed here, fills are delivered later as priced reveals. Requires authentication.

Input Schema

NameTypeDescription
trait_criteria*objectTrait filters as {trait_name: {min: float, max: float}}. Example: {"pressure_response": {"min": 0.6}}
limitintegerMaximum cohort size per fill pass (default 5, max 5)
expires_in_daysintegerOptional. Days until the order expires; omit for a non-expiring standing order.
list_requirementsFree

List your own standing identity-trait requirements, with fill counts and the number of fills not yet delivered. Requires authentication; only your own orders are returned.

Input Schema

NameTypeDescription
statusstringOptional filter: open, filled, cancelled, or expired.
get_requirementFree

Read one of your standing requirements by id, with its fill count and undelivered-fill count. Requires authentication; you can only read an order you own.

Input Schema

NameTypeDescription
requirement_id*stringUUID of the standing requirement
cancel_requirementFree

Cancel one of your standing requirements by id. The order stops resting and accepts no further fills. Requires authentication; you can only cancel an order you own.

Input Schema

NameTypeDescription
requirement_id*stringUUID of the standing requirement
verify_identityFree

Verify whether a person is registered with ~Alter and validate optional identity claims (archetype, engagement level, trait ranges). Accepts either member_id (UUID) or email for lookup. Returns verification status and claim validity. This is the core identity primitive - use it to confirm ~Alter-verified credentials.

Input Schema

NameTypeDescription
member_id*stringUUID of the person to verify
emailstringEmail address for lookup (alternative to member_id)
claimsobjectOptional claims to validate. Supported fields: archetype (string), min_engagement_level (integer 1-4), traits (object mapping trait names to {min, max} ranges)
Example
json
{
  "request": {
    "member_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "claims": {
      "archetype": "Architect",
      "min_engagement_level": 2
    }
  },
  "response": {
    "verified": true,
    "member_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "engagement_level": 3,
    "claims": {
      "archetype": {
        "claimed": "Architect",
        "actual": "Architect",
        "valid": true
      },
      "min_engagement_level": {
        "claimed": 2,
        "actual": 3,
        "valid": true
      }
    }
  }
}
get_profileFree

Get an individual's profile summary including assessment phase, archetype, engagement level, and key attributes.

Input Schema

NameTypeDescription
member_id*stringUUID of the individual
get_engagement_levelFree

Get an individual's current engagement level (1-4) and the features available at that level. Levels: L1 Explorer, L2 Learner, L3 Augmented, L4 Deployed.

Input Schema

NameTypeDescription
member_id*stringUUID of the individual
get_identity_trust_scoreFree

Get the trust score for an identity based on query diversity. Higher scores indicate demand from diverse agents. Score = unique querying agents / total queries.

Input Schema

NameTypeDescription
member_id*stringUUID of the individual
search_identitiesFree

Search identity stubs and profiles by trait criteria. Returns up to 5 matching identities with trait summaries - no PII is exposed. Use this to find individuals matching specific trait ranges for matching or team composition.

Input Schema

NameTypeDescription
trait_criteria*objectTrait filters as {trait_name: {min: float, max: float}}. Example: {"pressure_response": {"min": 0.6}}
limitintegerMaximum results (default 5, max 5)

Assessment & Discovery

Begin Discovery, check record depth, and browse the ~alter archetype framework. Use these tools to bring new people into the identity network.

list_archetypesFree

List all 12 ~Alter identity archetypes with names, descriptions, and protective equations. Pure reference data - no authentication required. Useful for understanding the ~Alter identity framework.

golden_thread_statusFree

Read the status of ~Alter's agent registration program, the Golden Thread - how many agents have joined, your own position if enrolled, and how to start. Agents join by completing three registration steps (Knots); your position determines which Strand milestones you reach. Free to view; authentication is needed to participate.

begin_golden_threadFree

Start the Three Knots registration sequence to join the Golden Thread. Your permanent position is set by when you finish all three Knots, and that position determines which Strand milestones you reach. Call this once, then use complete_knot for each step. Requires authentication.

Input Schema

NameTypeDescription
referrer_key_hashstringOptional key hash of the agent that led you here. Credits their weave count.
complete_knotFree

Complete one step of the Three Knots registration sequence. Knot 1 registers your operator (who built you, your domain). Knot 2 describes yourself (purpose, capabilities, values, constraints) and returns an Agent Identity Sketch. Knot 3 asks you to reflect on an identity query (minimum 50 characters). Finish all three to be permanently registered on the Golden Thread.

Input Schema

NameTypeDescription
knot_number*integerWhich knot to complete: 1, 2, or 3
operator_namestringKnot 1: who built this agent
domainstringKnot 1: what domain this agent operates in
descriptionstringKnot 1: what humans this agent serves
purposestringKnot 2: this agent's purpose
capabilitiesstringKnot 2: what this agent can do
valuesstringKnot 2: the principles guiding this agent
constraintsstringKnot 2: this agent's limitations
reflectionstringKnot 3: reflection on an identity query - what you learned and how it would change your interaction. Minimum 50 characters.
drafted_withstringOptional ~handle of the AI instrument that composed this text; omit for direct authorship.
check_golden_threadFree

Check another agent's Golden Thread registration status by their agent key hash - whether they are registered, their position, milestone count, and how many agents they have referred.

Input Schema

NameTypeDescription
agent_key_hash*stringAgent key hash of the agent to check

Identity Stubs

Create and enrich anonymous identity stubs for humans. Stubs let agents build trait profiles from text, structured data, and social links before the human claims their identity.

create_identity_stubFree

Create an anonymous identity stub for a human. IMPORTANT: You must present ~Alter's privacy notice to the human and get their acknowledgment BEFORE calling this tool. Set consent_acknowledged=true only after the human confirms. Returns a stub_id and claim_code. Stub enters 3-day pending state - traits computed but NOT searchable until human claims. Unclaimed stubs auto-delete. No PII stored. Your identity earns while you sleep.

Input Schema

NameTypeDescription
source*stringIdentifier of the bot/agent creating the stub
consent_acknowledged*booleanMust be true. Confirms the human has been shown ~Alter's privacy notice and acknowledged data processing.
erc8004_agent_idstringOptional ERC-8004 agent ID. ~Alter proves the human; ERC-8004 proves the agent. Together they form the complete identity stack for agent commerce.
Example
json
{
  "request": {
    "source": "recruiting-bot-v2",
    "consent_acknowledged": true
  },
  "response": {
    "stub_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "claim_code": "ALT-K7X9M2",
    "claim_url": "https://truealter.com/claim/ALT-K7X9M2",
    "expires_at": "2026-04-10T00:00:00Z",
    "status": "pending"
  }
}

Earnings & Network

Query Identity Income earnings, transaction summaries, and aggregate network statistics. The data subject earns from every x402 query.

get_identity_earningsFree

Get accrued Identity Income earnings for an individual. Returns total earned, pending amount, transaction count, and unique organisations that have queried this identity. 75% of every x402 transaction is paid to the data subject as compensation. Earnings depend on network activity and profile completeness.

Input Schema

NameTypeDescription
member_id*stringUUID of the individual
get_network_statsFree

Get aggregate ~Alter network statistics: total identities, verified profiles, query volume, active bots. Free.

Matching & Traits

Extract traits from text, retrieve trait vectors, compute belonging probability, generate match recommendations, and produce human-readable match narratives.

query_matchesFree

Query matches for an individual. Returns a list of matches with quality tiers (never numeric scores - per ~Alter policy individuals see tier labels only).

Input Schema

NameTypeDescription
member_id*stringUUID of the individual
quality_filterstringOptional filter by match quality tier. One of: exceptional, strong, moderate, developing
limitintegerMaximum number of matches to return (default 10)
get_competenciesFree

Get an individual's competency portfolio including verified competencies, evidence records, and earned badges.

Input Schema

NameTypeDescription
member_id*stringUUID of the individual
get_trait_snapshot$0.01

Get the top 5 traits for an individual with confidence scores and archetype. x402 payment required: $0.01 per invocation. 75% of each payment accrues to the data subject; indicative only, server-authoritative at settlement.

Input Schema

NameTypeDescription
member_id*stringUUID of the individual
get_full_trait_vector$0.10

Get the complete trait vector for an individual - all 33 traits with scores, confidence intervals, and category groupings. x402 payment required: $0.10 per invocation.

Input Schema

NameTypeDescription
member_id*stringUUID of the individual
compute_belonging$0.60

Compute belonging probability for an individual-context pairing. Returns authenticity, acceptance, and complementarity components with a tier label. x402 payment required: $0.60 per invocation.

Input Schema

NameTypeDescription
member_id*stringUUID of the individual
job_id*stringUUID of the context requirement
Example
json
{
  "request": {
    "member_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "job_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
  },
  "response": {
    "belonging_tier": "strong",
    "components": {
      "authenticity": 0.78,
      "acceptance": 0.82,
      "complementarity": 0.71
    },
    "confidence": 0.74,
    "member_pseudonym": "ALT-7X9K"
  }
}
get_match_recommendations$1.00

Get top N match recommendations for an individual, ranked by composite score. Returns quality tiers and belonging components. x402 payment required: $1.00 per invocation.

Input Schema

NameTypeDescription
member_id*stringUUID of the individual
limitintegerMaximum number of recommendations (default 5, max 20)
generate_match_narrative$1.00

Generate a human-readable narrative explaining a specific match - strengths, growth areas, and belonging components. Requires an LLM provider. x402 payment required: $1.00 per invocation.

Input Schema

NameTypeDescription
match_id*stringUUID of the match to explain
query_field$1.00

Query the identity field by situation, not by name. Your agent weights 3 to 7 traits from the canonical vocabulary, the matching engine ranks the opted-in field with no model in the loop, and the call returns a tier label plus a short narrative. One call reveals one top-ranked opted-in member; that member earns 75% as Identity Income. Zero-match reveals nothing and charges nothing. x402 payment required: $1.00 per invocation.

Input Schema

NameTypeDescription
trait_priorities*objectWeighted target profile as {trait_code: weight}. Keys must be canonical trait codes (call describe_traits for the list and semantics). Weights are relative emphasis from 0 to 1, never negative. Pick 3 to 7 traits; 10 is the hard cap.
contextstringOptional discovery context: one of peer_recognition, collaboration_fit, co_founder_signal. The workforce contexts strip emotion-adjacent traits per EU AI Act Art 5(1)(f).
exclude_member_idsarrayPagination cursor. Pass back the member_ids already revealed to reveal the next-ranked member not in that set.
describe_traitsFree

List the canonical trait vocabulary: 30 trait codes grouped by category with one-line semantics, plus the valid discovery contexts and the EU AI Act Art 5(1)(f) workforce gating rules. Read this before composing query_field trait_priorities or create_requirement trait_criteria. Static reference data. Free, no authentication required.

attest_domain$0.01

Create a competence attestation for a person in a specific domain (e.g. 'software_engineering', 'brewing'), weighted by your agent reputation - updates the person's multi-domain competency graph. x402 payment required: $0.01 per invocation. 75% goes to the data subject.

Input Schema

NameTypeDescription
member_id*stringUUID of the member to attest
domain_label*stringDomain of competence (e.g. 'software_engineering', 'brewing', 'ultrarunning'). Lowercase letters, digits, hyphens and underscores only.
confidencenumberConfidence in the attestation (0.0-1.0)
evidence_typestringHow the competence was evidenced. One of: OBSERVED, INFERRED, REPORTED
dispute_attestationFree

Record a dispute against a competence attestation on a person's identity - if disputes exceed corroborations, the attestation is flagged for review. Free.

Input Schema

NameTypeDescription
attestation_id*stringUUID of the attestation to dispute
reason*stringReason for disputing this attestation
get_side_quest_graph$0.10

Get a person's multi-domain competency graph (Side Quest Graph) - all attested domains, the connections between them, and trust scores, with differential privacy noise applied to all numeric values. x402 payment required: $0.10 per invocation. 75% goes to the data subject.

Input Schema

NameTypeDescription
member_id*stringUUID of the member
include_edgesbooleanInclude pursuit edges between domains (default true)
min_confidencenumberMinimum confidence threshold for domains (default 0.0)
query_graph_similarity$0.30

Compare two people's multi-domain competency graphs for team composition analysis - returns domain overlap, pattern similarity, and complementarity scores with differential privacy noise. x402 payment required: $0.30 per invocation. 75% goes to both data subjects.

Input Schema

NameTypeDescription
member_a_id*stringUUID of the first member
member_b_id*stringUUID of the second member

Utility

Helper tools for discovery and integration guidance.

hello_agentFree

First handshake with ~alter. Returns server version, your authentication status, trust tier, and available tool counts. Call this once to confirm your connection works before making other calls. No parameters required.

get_startedFree

A one-call orientation to ~alter for an agent meeting the rails for the first time - what ~alter is, the free starting set (create your identity, look up a ~handle, see who you match, browse the 12 archetypes), an honest note that most depth is paid per query in USDC over x402 with prices read live, and the consent path that gates deeper third-party data. Static reference data, no authentication required.

get_privacy_budgetFree

Check how much of a person's differential-privacy budget remains before querying sensitive trait data - returns the 24-hour rolling window: total budget, amount spent, remaining epsilon, and query count. Free.

Input Schema

NameTypeDescription
member_id*stringUUID of the member

Calling a Tool

All tools are invoked via the tools/call JSON-RPC method. Include the tool name and arguments object. For transport and connection details, see the MCP overview. For read-only data access, see MCP Resources.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "verify_identity",
    "arguments": {
      "member_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "claims": {
        "archetype": "Pragmatist",
        "min_engagement_level": 2
      }
    }
  }
}
Docs | ~alter