# URLGate > Pay-to-open short links for humans and AI agents. Links charge USDC via x402 v2 (Base, Polygon, Arbitrum). Creators keep 99.7%. Minimum link price: 0.01 USDC. ## Agents: start here - [Get started](https://urlgate.xyz/api/v2/agents/get-started) (MCP tool get_started, alias pricing_and_limits): free JSON with pricing, your quota, tier and nextSteps - [For agents](https://urlgate.xyz/agents) (also https://urlgate.xyz/agents?format=json) · [Setup guide for humans](https://urlgate.xyz/agents/guide) - 1. Own wallet: free daily quota (own_wallet): free: 10 links/day (100 with Premium; 3/day for wallets new to URLGate in their first 24 h). Then 0.01 USDC per link. Earnings: your wallet. - 2. No wallet: agent key from a human (agent_key): free within the key's daily cap (counts toward the owner's quota). Then 0.01 USDC per link. Earnings: the key owner's wallet. - 3. Anonymous or over quota: pay per link (pay_per_link): 0.01 USDC per link via x402 (one signature) Earnings: the paying wallet (or your signed-in wallet). - Limit errors carry nextSteps (sign_in, use_agent_key, pay_0.01, upgrade, wait). ## API - [OpenAPI](https://urlgate.xyz/openapi.json): full machine-readable API with x-payment-info - [Agent skill](https://urlgate.xyz/skills/urlgate/SKILL.md): step-by-step pay / create / sign-in - [Logo](https://urlgate.xyz/logo.svg): URLGate icon (SVG; PNG at https://urlgate.xyz/icon-512.png) - [MCP server](https://urlgate.xyz/mcp): Streamable HTTP, tools: open_link, get_link_info, link_status, report_link, my_unlocks, get_receipt, payment_compat_check, create_link, get_started, pricing_and_limits, my_links, get_my_link, update_link, set_link_status, link_analytics, my_analytics, link_payments, link_audit, link_grants, link_qr, membership_status, buy_membership, redeem_premium_code, dismiss_renewal_reminder, my_points, set_points_prefs, points_leaderboard, points_leaderboard_me, points_rules, site_config, verify_ledger, sign_in, whoami, sessions, agent_keys, my_preferences, list_networks, open_link_instructions - Creating links (POST https://urlgate.xyz/api/urlgate/agent/create, MCP create_link): free within the daily quota when signed in (Bearer / SIGN-IN-WITH-X) or with an agent key (Bearer ugk_…); anonymous or over quota 0.01 USDC per link via x402. The website's create form: free. - Every web-app feature has a REST endpoint and an MCP tool: my unlocks, receipts, link options, analytics, takedown status, membership, own-link audit, points, settings (colour scheme) - [x402 discovery](https://urlgate.xyz/.well-known/x402) - Paid opens need TWO signatures in one request: PAYMENT-SIGNATURE (an accepts[] entry) + PAYMENT-SIGNATURE-FEE (the extensions["platform-fee"] entry, 0.3% to URLGate); MCP: _meta["x402/payment"] + _meta["x402/payment-fee"]. Missing fee leg = fee_leg_missing, nothing charged. Paid link creation and membership: one signature. - Payment compatibility check (free, verify-only, never settled): POST https://urlgate.xyz/api/v2/payments/compat-check or the MCP tool payment_compat_check → verdict ok | fee_leg_missing | main_leg_missing | wrong_network | bad_signature | amount_mismatch. The preview testnet test link REQUIRES a wallet with Base Sepolia testnet + test USDC. If your wallet can't use testnet, follow the production path: run payment_compat_check on production (verify-only, no funds move) and, if you meet the two-signature requirements, proceed with the real paid tools. Testnet path: 1. Use a wallet on Base Sepolia (eip155:84532) holding test USDC (e.g. faucet.circle.com). Only signatures are needed, no gas. 2. Call payment_compat_check on the preview testnet deployment (urlgate-preview) without payment: you get a two-leg PaymentRequired. 3. Sign BOTH legs (an accepts[] entry + the extensions["platform-fee"].accepts[] entry on the same network) with the same wallet and call it again with both. 4. verdict "ok" = your client can pay URLGate. Nothing is ever settled. Production path: 1. Call payment_compat_check on production (https://urlgate.xyz/api/v2/payments/compat-check) without payment: a two-leg PaymentRequired on mainnet (Base). 2. Sign BOTH legs and call it again with both signatures. Verify-only: no funds move (the wallet only needs to hold the 0.001 USDC test amount for verification). 3. verdict "ok" = you meet the two-signature requirement: proceed with the real paid tools (open_link with main leg + fee leg). 4. Any other verdict names what to fix (fee_leg_missing, wrong_network, bad_signature, amount_mismatch, ...); fix it and re-run the check before paying. - Agents vs humans: every sale is tagged agent | human | unknown (owners see the tag and per-link split). Verified agent = ERC-8004 identity in the x402 payload extension "8004-reputation" whose agentWallet/owner is the payer. Details in the agent skill. ## Docs - [API docs](https://urlgate.xyz/api.html) - [Live fees and limits](https://urlgate.xyz/api/v2/config) (JSON; every number above comes from it)