Resolve social handles to wallets, score onchain reputation, pay in any ERC-20, SPL or native.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Execute a Smart Send from the API key owner Connect embedded wallet. EVM: batch native or ERC-20 (need native gas plus the token). Solana (chainId 1399811149): SOL or SPL from the Solana embedded wallet; packs up to 20 native or 10 SPL recipients per transaction. Social recipient types: email, phone, telegram, discord, farcaster, twitter, github (id or username). linkedin and slack are not on /drop — use connect_lookup first, then type wallet. After connect_lookup, EVM payouts use ethWalletAddress (never solWalletAddress); Solana payouts use solWalletAddress (never ethWalletAddress). Social types on /drop resolve server-side; for type wallet, pass the resolved payout address for the target chain. Omit tokenContract or set it to null for the native token; pass an ERC-20 contract or SPL mint otherwise — do not use the zero address. Amounts are smallest-unit integer strings (ETH 18 decimals, SOL 9, USDC usually 6). Solana native (tokenContract null): no ATA. Sending to a recipient without an existing funded account requires amount ≥ 890880 lamports (rent-exempt minimum for a system account); that SOL stays with the recipient. Below that the tx fails. Sender also pays a ~5000-lamport fee. Solana SPL: tokens sit in Associated Token Accounts (ATA), not on the wallet pubkey. Recipients need not already hold the token — the API prepends CreateIdempotent. The sender (not the recipient) pays ~2039280 lamports (~0.002039 SOL) rent per newly created dest ATA, plus tx fees, on top of the token amount (which can be as small as 1 unit). A 400 "Insufficient funds" on SPL is often missing SOL for ATA rent, not missing USDC. Token-2022 is not supported; USDC mint is EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. Always call connect_drop_balance first. Returns 201 when submitted or 202 when recipients still processing — retry with the same idempotencyKey.
EVM chain ID or 1399811149 for Solana mainnet
Wallet or social recipients (all wallet or all social, no mix). Social types: email, phone, telegram, discord, farcaster, twitter, github (numeric id or username). linkedin and slack are not supported — use connect_lookup first, then type wallet. Optional amountInWei per recipient uses the same smallest-unit rules as amountInWeiPerRecipient. On EVM, wallet ids are 0x addresses; on Solana, base58 pubkeys. Social lookup payouts use ethWalletAddress on EVM and solWalletAddress on Solana.
Keep only recipients in the sender EAS trust graph.
EVM ERC-20 contract or Solana SPL mint. Omit or null for the native token (ETH/POL/AVAX, or SOL on 1399811149). Do not use the zero address.
When true, send to recipients that resolved successfully and skip failed lookups.
Uniform amount in smallest units. Native ETH uses 18 decimals; SOL uses 9; ERC-20/SPL uses token decimals from connect_drop_balance (USDC usually 6). Omit when setting amountInWei on each recipient.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Execute a Smart Send from the API key owner Connect embedded wallet. EVM: batch native or ERC-20 (need native gas plus the token). Solana (chainId 1399811149): SOL or SPL from the Solana embedded wallet; packs up to 20 native or 10 SPL recipients per transaction. Social recipient types: email, phone, telegram, discord, farcaster, twitter, github (id or username). linkedin and slack are not on /drop — use connect_lookup first, then type wallet. After connect_lookup, EVM payouts use ethWalletAddress (never solWalletAddress); Solana payouts use solWalletAddress (never ethWalletAddress). Social types on /drop resolve server-side; for type wallet, pass the resolved payout address for the target chain. Omit tokenContract or set it to null for the native token; pass an ERC-20 contract or SPL mint otherwise — do not use the zero address. Amounts are smallest-unit integer strings (ETH 18 decimals, SOL 9, USDC usually 6). Solana native (tokenContract null): no ATA. Sending to a recipient without an existing funded account requires amount ≥ 890880 lamports (rent-exempt minimum for a system account); that SOL stays with the recipient. Below that the tx fails. Sender also pays a ~5000-lamport fee. Solana SPL: tokens sit in Associated Token Accounts (ATA), not on the wallet pubkey. Recipients need not already hold the token — the API prepends CreateIdempotent. The sender (not the recipient) pays ~2039280 lamports (~0.002039 SOL) rent per newly created dest ATA, plus tx fees, on top of the token amount (which can be as small as 1 unit). A 400 "Insufficient funds" on SPL is often missing SOL for ATA rent, not missing USDC. Token-2022 is not supported; USDC mint is EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. Always call connect_drop_balance first. Returns 201 when submitted or 202 when recipients still processing — retry with the same idempotencyKey.
| Argument | Type | Description |
|---|---|---|
| chainId* | integer | EVM chain ID or 1399811149 for Solana mainnet |
| recipients* | array | Wallet or social recipients (all wallet or all social, no mix). Social types: email, phone, telegram, discord, farcaster, twitter, github (numeric id or username). linkedin and slack are not supported — use connect_lookup first, then type wallet. Optional amountInWei per recipient uses the same smallest-unit rules as amountInWeiPerRecipient. On EVM, wallet ids are 0x addresses; on Solana, base58 pubkeys. Social lookup payouts use ethWalletAddress on EVM and solWalletAddress on Solana. |
| trustFilter | object | Keep only recipients in the sender EAS trust graph. |
| tokenContract | string | null | EVM ERC-20 contract or Solana SPL mint. Omit or null for the native token (ETH/POL/AVAX, or SOL on 1399811149). Do not use the zero address. |
| idempotencyKey* | string | |
| ignoreFailedRecipients | boolean | When true, send to recipients that resolved successfully and skip failed lookups. |
| amountInWeiPerRecipient | any | Uniform amount in smallest units. Native ETH uses 18 decimals; SOL uses 9; ERC-20/SPL uses token decimals from connect_drop_balance (USDC usually 6). Omit when setting amountInWei on each recipient. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"idempotencyKey",
"chainId",
"recipients"
],
"properties": {
"chainId": {
"type": "integer",
"description": "EVM chain ID or 1399811149 for Solana mainnet"
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string"
},
"type": {
"enum": [
"email",
"phone",
"telegram",
"discord",
"farcaster",
"twitter",
"github",
"wallet"
],
"type": "string"
},
"username": {
"type": "string"
}
},
"additionalProperties": true
},
"minItems": 1,
"description": "Wallet or social recipients (all wallet or all social, no mix). Social types: email, phone, telegram, discord, farcaster, twitter, github (numeric id or username). linkedin and slack are not supported — use connect_lookup first, then type wallet. Optional amountInWei per recipient uses the same smallest-unit rules as amountInWeiPerRecipient. On EVM, wallet ids are 0x addresses; on Solana, base58 pubkeys. Social lookup payouts use ethWalletAddress on EVM and solWalletAddress on Solana."
},
"trustFilter": {
"type": "object",
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"require",
"skip"
],
"type": "string",
"description": "require = fail if anyone is outside the graph; skip = drop them"
},
"context": {
"type": "string",
"description": "Restrict to this trust context. Omit to match any."
}
},
"description": "Keep only recipients in the sender EAS trust graph.",
"additionalProperties": false
},
"tokenContract": {
"type": [
"string",
"null"
],
"description": "EVM ERC-20 contract or Solana SPL mint. Omit or null for the native token (ETH/POL/AVAX, or SOL on 1399811149). Do not use the zero address."
},
"idempotencyKey": {
"type": "string",
"format": "uuid"
},
"ignoreFailedRecipients": {
"type": "boolean",
"description": "When true, send to recipients that resolved successfully and skip failed lookups."
},
"amountInWeiPerRecipient": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Uniform amount in smallest units. Native ETH uses 18 decimals; SOL uses 9; ERC-20/SPL uses token decimals from connect_drop_balance (USDC usually 6). Omit when setting amountInWei on each recipient."
}
},
"additionalProperties": false
}Get native and token balances for the API key owner embedded wallet. Accepts Smart Send chains and enabled delegation chains. Robinhood Chain (4663) returns ERC-20 balances from Blockscout. Monad (143) returns ERC-20 balances from Moralis; other delegation chains return native plus featured tokens. Always call before connect_drop. Zero balances are omitted, so a missing token means balance 0. EVM: confirm native gas plus the ERC-20 being sent. Solana (chainId 1399811149): SOL in this response is spendable lamports on the wallet pubkey (rent locked in existing token accounts is not included). Native SOL drop to a recipient without an existing funded account: amount itself must be ≥ 890880 lamports and sender SOL must cover amount + ~5000 lamports fee. SPL drop: token balance ≥ total amount, and SOL ≥ tx fee + ~2039280 lamports (~0.002039 SOL) per recipient that may need a new Associated Token Account — even when sending USDC. Insufficient SOL for ATA rent fails before the token transfer.
| Argument | Type | Description |
|---|---|---|
| chainId* | integer | EVM chain ID or 1399811149 for Solana mainnet (Smart Send) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chainId"
],
"properties": {
"chainId": {
"type": "integer",
"description": "EVM chain ID or 1399811149 for Solana mainnet (Smart Send)"
}
},
"additionalProperties": false
}List product chains with per-feature compatibility. lookup is true for EVM catalog chains and Solana; drop is true for Smart Send chains, enabled delegation chains, and Solana (chainId 1399811149 for connect_drop / connect_drop_balance).
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Get public x402 list prices for lookup and scores (reference only; live paywall amounts are in 402 responses).
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Resolve social identities to EVM and Solana wallet addresses. Resolving a recipient who has no wallet provisions one for them, so this is read-only for the caller but not for the recipient. If status is processing, retry the same payload.
| Argument | Type | Description |
|---|---|---|
| recipients* | array | Recipients to resolve to EVM/Solana wallets |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string"
},
"type": {
"enum": [
"email",
"phone",
"telegram",
"discord",
"farcaster",
"twitter",
"github",
"linkedin",
"slack"
],
"type": "string"
},
"username": {
"type": "string"
}
},
"additionalProperties": true
},
"minItems": 1,
"description": "Recipients to resolve to EVM/Solana wallets"
}
},
"additionalProperties": false
}List platforms a recipient has exposed on Connect, with enriched profile, scores, and wallet addresses. Recipient may be a social account, an exposed wallet (EVM/Solana/smart wallet), or a Connect username. May require x402 payment when the profile owner charges for lookups.
| Argument | Type | Description |
|---|---|---|
| recipient* | object | Social identity, exposed wallet (EVM/Solana/smart wallet), or Connect username whose exposed linked accounts and Connect profile should be listed |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"recipient"
],
"properties": {
"recipient": {
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string"
},
"type": {
"enum": [
"email",
"phone",
"telegram",
"discord",
"farcaster",
"twitter",
"github",
"linkedin",
"slack",
"wallet",
"username"
],
"type": "string"
},
"username": {
"type": "string"
}
},
"description": "Social identity, exposed wallet (EVM/Solana/smart wallet), or Connect username whose exposed linked accounts and Connect profile should be listed",
"additionalProperties": true
}
},
"additionalProperties": false
}Get the Connect profile, scores, and all linked accounts for the API key owner. Use to identify which user the key belongs to.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Batch scores for linked accounts or Connect usernames. One result per request user. Optional filter sets passedFilter (quidli 0–100, neynar/lens 0–1, ethos 0–2800).
| Argument | Type | Description |
|---|---|---|
| users* | array | Users to fetch scores for |
| filter | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"users"
],
"properties": {
"users": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string"
},
"type": {
"enum": [
"email",
"phone",
"telegram",
"discord",
"farcaster",
"twitter",
"github",
"linkedin",
"slack",
"wallet",
"username"
],
"type": "string"
},
"username": {
"type": "string"
}
},
"additionalProperties": true
},
"minItems": 1,
"description": "Users to fetch scores for"
},
"filter": {
"type": "object",
"required": [
"type",
"minScore"
],
"properties": {
"type": {
"enum": [
"quidli_score",
"lens_score",
"neynar_score",
"ethos_twitter_reputation",
"ethos_wallet_reputation"
],
"type": "string"
},
"minScore": {
"type": "number",
"description": "quidli_score: 0–100; neynar/lens: 0–1; ethos_twitter/wallet: 0–2800"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Scores for a linked social account or wallet.
| Argument | Type | Description |
|---|---|---|
| platform* | string | |
| identifier* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"platform",
"identifier"
],
"properties": {
"platform": {
"enum": [
"wallet",
"email",
"phone",
"telegram",
"discord",
"farcaster",
"twitter",
"github",
"linkedin",
"slack"
],
"type": "string"
},
"identifier": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}Scores by Connect public username.
| Argument | Type | Description |
|---|---|---|
| username* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"username"
],
"properties": {
"username": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}Check whether identities sit in a trust graph at depth 1. Omit context to match any context.
| Argument | Type | Description |
|---|---|---|
| from* | object | Graph owner |
| context | string | If set, only this context matches |
| targets* | array | Identities to test |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"from",
"targets"
],
"properties": {
"from": {
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string"
},
"type": {
"enum": [
"email",
"phone",
"telegram",
"discord",
"farcaster",
"twitter",
"github",
"linkedin",
"slack",
"wallet",
"username"
],
"type": "string"
},
"username": {
"type": "string"
}
},
"description": "Graph owner",
"additionalProperties": true
},
"context": {
"type": "string",
"maxLength": 64,
"description": "If set, only this context matches"
},
"targets": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"$ref": "#/properties/from/properties/id"
},
"type": {
"$ref": "#/properties/from/properties/type"
},
"username": {
"$ref": "#/properties/from/properties/username"
}
},
"additionalProperties": true
},
"minItems": 1,
"description": "Identities to test"
}
},
"additionalProperties": false
}Create a unidirectional trust attestation on Base (EAS) from the API key owner embedded wallet to a wallet or social identity. Identical active attestations are returned without a new transaction. Requires CONNECT_API_KEY, Smart Send attestation signer enrolled, and ETH on Base for gas.
| Argument | Type | Description |
|---|---|---|
| to* | object | Identity to trust (wallet, social, or Connect username) |
| level* | integer | Trust level 1–100 |
| context | string | Optional context such as team:quidli |
| expiresIn | integer | Optional lifetime in seconds |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"to",
"level"
],
"properties": {
"to": {
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string"
},
"type": {
"enum": [
"email",
"phone",
"telegram",
"discord",
"farcaster",
"twitter",
"github",
"linkedin",
"slack",
"wallet",
"username"
],
"type": "string"
},
"username": {
"type": "string"
}
},
"description": "Identity to trust (wallet, social, or Connect username)",
"additionalProperties": true
},
"level": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Trust level 1–100"
},
"context": {
"type": "string",
"maxLength": 64,
"description": "Optional context such as team:quidli"
},
"expiresIn": {
"type": "integer",
"description": "Optional lifetime in seconds",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}List outgoing or incoming trust edges for an identity at depth 1.
| Argument | Type | Description |
|---|---|---|
| context | string | |
| platform* | string | Identity platform, or username for a Connect username |
| direction | string | out = who they trust (default); in = who trusts them |
| identifier* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"platform",
"identifier"
],
"properties": {
"context": {
"type": "string",
"maxLength": 64
},
"platform": {
"enum": [
"wallet",
"email",
"phone",
"telegram",
"discord",
"farcaster",
"twitter",
"github",
"linkedin",
"slack",
"username"
],
"type": "string",
"description": "Identity platform, or username for a Connect username"
},
"direction": {
"enum": [
"out",
"in"
],
"type": "string",
"description": "out = who they trust (default); in = who trusts them"
},
"identifier": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}Revoke active trust attestations from the API key owner to a target. Optional context limits which attestations are revoked. Requires CONNECT_API_KEY and ETH on Base.
| Argument | Type | Description |
|---|---|---|
| to* | object | Identity to untrust |
| context | string | Revoke only this context. Omit to revoke all contexts for the pair. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"to"
],
"properties": {
"to": {
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string"
},
"type": {
"enum": [
"email",
"phone",
"telegram",
"discord",
"farcaster",
"twitter",
"github",
"linkedin",
"slack",
"wallet",
"username"
],
"type": "string"
},
"username": {
"type": "string"
}
},
"description": "Identity to untrust",
"additionalProperties": true
},
"context": {
"type": "string",
"maxLength": 64,
"description": "Revoke only this context. Omit to revoke all contexts for the pair."
}
},
"additionalProperties": false
}