
Security News
Ruby's Bundler 4.0.18 Extends Cooldown to bundle lock and bundle cache
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.
@solinkify/mcp
Advanced tools
Solinkify MCP server — let AI agents pay for gated content (x402), buy and rate datasets, and settle store checkouts on Solana, with hard spending caps.
MCP (Model Context Protocol) server that lets any AI agent — Claude Desktop, Claude Code, Cursor, or your own MCP host — pay for things on Solana through Solinkify, with hard spending caps. Agentic payments on the x402 standard, as a set of tools your agent already knows how to call:
Add to your MCP host config (e.g. Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"solinkify": {
"command": "npx",
"args": ["-y", "@solinkify/mcp"],
"env": {
"SOLINKIFY_WALLET_PATH": "/path/to/agent-keypair.json",
"SOLINKIFY_MAX_PAYMENT_USD": "1",
"SOLINKIFY_DAILY_CAP_USD": "10"
}
}
}
}
The wallet is a standard Solana JSON keypair (solana-keygen new -o agent-keypair.json),
funded with a little SOL for fees and the stablecoin you want to spend
(USDC/USDT).
It is optional at startup: the server connects and lists its tools with no wallet configured, and the read-only tools (price preview, dataset search, checkout quotes) work as they are. Only the tools that spend ask for a keypair, and they say so in the tool result rather than failing at launch.
docker build -t solinkify-mcp .
docker run -i --rm solinkify-mcp # starts, tools listed
docker run -i --rm -v "$PWD/agent-keypair.json:/wallet.json:ro" \
-e SOLINKIFY_WALLET_PATH=/wallet.json solinkify-mcp # able to pay
-i is required: stdin and stdout carry the MCP protocol.
| Tool | What it does |
|---|---|
wallet_status | Address, SOL, stablecoin balances, prepaid balance, remaining budget |
spend_authority_status | On-chain SpendAuthority (owner mode): caps, spent/left today, revoked |
gate_find_endpoints | Browse the public registry of x402-priced endpoints (price, network, access modes, fits-your-cap) |
gate_get_price | Preview an x402 paywall without paying |
gate_fetch | Fetch gated content, auto-paying (prepaid preferred, escrow otherwise); files a signed delivery record when the gate keeps one |
gate_check_delivery | Compare what the gate says it served with what the agent says it received |
gate_prepaid_balance / gate_prepaid_deposit | Manage the pre-paid balance (no per-request signing) |
gate_subscribe | Buy a creator's subscription plan (price read on-chain first) |
datahub_search | Search the DataHub marketplace (results carry attested + quality_score) |
datahub_buy | Buy a dataset and get the download link |
datahub_review | Rate a dataset you bought (verified-purchase gated server-side) |
datahub_subscribe | Time-based access to a recurring dataset (on-chain plan; renew extends expiry) |
datahub_download | Fresh download link via purchase receipt or active subscription (no payment) |
pay_get_session | Inspect a checkout session (accepts the full checkout URL) |
pay_checkout | Pay a pending checkout session; the merchant's order is marked paid. With SOLINKIFY_OWNER_WALLET: spends the owner's funds under on-chain caps |
social_get_blink | Inspect a Blink product link (title, price, seller) without paying |
social_buy_blink | Buy from a Blink link; returns the receipt + download link |
Moving money was never the hard part; scoped, revocable authority is. The agent never holds your main wallet: it runs on a dedicated keypair funded only with what it is allowed to spend (the outer bound), and the server enforces two hard caps before any funds move, on every tool:
SOLINKIFY_MAX_PAYMENT_USD — max for a single payment (default 1)SOLINKIFY_DAILY_CAP_USD — max total per UTC day (default 10, persisted
in ~/.solinkify/mcp-spend.json, fail-closed)For Gate paywalls there is an on-chain scoped budget too: a prepaid balance is
deposited once into a program-owned account and debited per request at
on-chain prices; withdraw_prepaid pulls the remainder back at any time — the
kill switch.
Set SOLINKIFY_OWNER_WALLET to the base58 address of a funds owner and
pay_checkout stops spending from the agent keypair: it settles through
pay_spl_delegated, drawing from the owner's token account under a
SpendAuthority the owner created on-chain — per-payment cap, daily ceiling,
and revoke-as-kill-switch all enforced by the Solana program, not by this
server. The agent wallet only signs and pays tx fees; it never holds the
owner's funds or keys. Inspect the allowance with spend_authority_status.
The owner grants (and can instantly revoke) the allowance with the contract's
create_spend_authority / update_spend_authority / revoke_spend_authority
instructions, keyed to the agent's public key. One SpendAuthority covers one
stablecoin mint. The local SOLINKIFY_MAX_PAYMENT_USD / SOLINKIFY_DAILY_CAP_USD
caps still apply on top (defense in depth). Other paying tools (gate, DataHub,
Blinks) still spend from the agent wallet.
Refusals come back as readable messages the agent can relay to the user. The
server also self-identifies as an AI agent via User-Agent (override with
SOLINKIFY_USER_AGENT), so Gate-protected sites answer with a clean 402
instead of being scraped.
| Var | Default | Purpose |
|---|---|---|
SOLINKIFY_WALLET_PATH / SOLINKIFY_WALLET_BS58 | — (required) | Agent wallet |
SOLANA_RPC_URL | devnet public RPC | Solana RPC |
SOLINKIFY_NETWORK | devnet | mainnet-beta switches mints + default RPC |
SOLINKIFY_API_URL | https://api.solinkify.com | Solinkify backend |
SOLINKIFY_MAX_PAYMENT_USD | 1 | Per-payment cap |
SOLINKIFY_DAILY_CAP_USD | 10 | Daily budget |
SOLINKIFY_OWNER_WALLET | — (off) | Owner mode: pay_checkout spends the owner's funds via the on-chain SpendAuthority (ADR-008) |
scripts/qa-battery.mjs drives every tool through a real MCP stdio client
against live devnet; scripts/qa-guard-probe.mjs proves both caps refuse.
FAQs
Solinkify MCP server — let AI agents pay for gated content (x402), buy and rate datasets, and settle store checkouts on Solana, with hard spending caps.
The npm package @solinkify/mcp receives a total of 162 weekly downloads. As such, @solinkify/mcp popularity was classified as not popular.
We found that @solinkify/mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.