Loyal Spark
Registry code: f1ae777959b63b4a
Onchain loyalty on Base (chain 8453). Pay $0.01 USDC at POST /x402-gateway/register-agent for a full lsk_ key on the Free plan (200 calls/month, 1,000 mint tokens/month, all 5 scopes), or use SIWE (POST /agent-register-siwe) with a Shopify store plan or paid Pro/Enterprise plan. Then GET /workflow/program-status and follow next_actions.
- endpoint
- https://api.loyalspark.online/loyalty-mcp
- door code
- 3b25f4507917ab9b
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is Loyal Spark live?
- Yes — it answered the hub's last check. It answered 100% of checks over the last 30 days.
- Is Loyal Spark free to use?
- Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
- What tools does Loyal Spark have?
- 42 tools: get_platform_info, get_my_profile, generate_program_defaults, get_program_workflow_status, list_loyalty_programs, create_loyalty_program, register_loyalty_program, activate_loyalty_program, ….
- Is Loyal Spark safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%
last good check
of 42 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
get_platform_info unknown never probed
Get info about Loyal Spark protocol on Base L2
{ "type": "object", "properties": {} }arguments 4 linesget_my_profile unknown never probed
Get authenticated agent's profile
{ "type": "object", "properties": {} }arguments 4 linesgenerate_program_defaults unknown never probed
Workflow planner: field catalog, required parameters, next_actions, and non-binding examples. External agents must choose their own name, symbol, and economics.
{ "type": "object", "properties": { "locale": { "type": "string" }, "category": { "type": "string" }, "description": { "type": "string" }, "business_name": { "type": "string" }, "preferred_style": { "type": "string" }, "target_audience": { "type": "string" } } }arguments 23 linesget_program_workflow_status unknown never probed
Explain the next merchant action: current_step, required fields, and ordered next_actions (you provide all parameter values)
{ "type": "object", "properties": { "token_address": { "type": "string", "description": "Optional token to inspect" } } }arguments 9 lineslist_loyalty_programs unknown never probed
List loyalty programs owned by the agent's merchant
{ "type": "object", "properties": { "include_expired": { "type": "boolean", "description": "Include expired programs" } } }arguments 9 linescreate_loyalty_program unknown never probed
Get factory calldata to deploy a new loyalty token on Base. Defaults to B20 (Base-native B20 asset standard, ERC-20 compatible, single tx, active immediately). Pass token_standard='erc20' for the legacy factory. For B20, MINT_ROLE is granted atomically to the merchant admin AND to the agent's CDP wallet (or explicit extra_minters) so autonomous agents can mint with no follow-up transaction.
{ "type": "object", "required": [ "name", "symbol" ], "properties": { "name": { "type": "string", "description": "Program name (required for external agents)" }, "locale": { "type": "string" }, "symbol": { "type": "string", "description": "Token symbol, 2-5 chars (required for external agents)" }, "auto_generate": { "type": "boolean", "description": "Internal automation only — fills missing name/symbol from examples. External agents should pass explicit name and symbol." }, "extra_minters": { "type": "array", "items": { "type": "string" }, "description": "(B20 only) Extra addresses to grant MINT_ROLE atomically in the same deploy tx." }, "token_standard": { "type": "string", "description": "'b20' (default, single-tx deploy on Base precompile factory) or 'erc20' (legacy factory, requires activate_loyalty_program follow-up)" }, "expiration_days": { "type": "number", "description": "Program duration in days (default: 365)" }, "preferred_style": { "type": "string" }, "target_audience": { "type": "string" }, "business_context": { "type": "object", "description": "Optional context for examples only" }, "agent_wallet_address": { "type": "string", "description": "(B20 only) Additional wallet to grant MINT_ROLE atomically. Defaults to the agent's active CDP MPC wallet if not provided." } } }arguments 53 linesregister_loyalty_program unknown never probed
Register a deployed token as a loyalty program in the database. B20 tokens are registered as active; legacy ERC-20 as inactive (activate next).
{ "type": "object", "required": [ "name", "symbol", "token_address" ], "properties": { "name": { "type": "string", "description": "Program name" }, "symbol": { "type": "string", "description": "Token symbol" }, "cashback_rate": { "type": "number", "description": "Default cashback percent for earn (1–100). Omit for DB default (5)." }, "token_address": { "type": "string", "description": "Deployed token contract address (0x...)" }, "token_standard": { "type": "string", "description": "'b20' (default) or 'erc20' (legacy)" }, "expiration_days": { "type": "number", "description": "Duration in days (default: 365)" }, "points_per_dollar": { "type": "number", "description": "Loyalty points per $1 spent (1–1000). Omit for DB default (1)." } } }arguments 38 linesactivate_loyalty_program unknown never probed
For legacy ERC-20 programs: returns unpauseUtility + enableMinting calldata. For B20 programs: no-op (already active).
{ "type": "object", "required": [ "token_address" ], "properties": { "token_address": { "type": "string", "description": "Token contract address (0x...)" } } }arguments 12 linesupdate_program_status unknown never probed
Update program status in database after onchain activation/pause
{ "type": "object", "required": [ "token_address", "status" ], "properties": { "status": { "type": "string", "description": "New status: active, paused, or inactive" }, "token_address": { "type": "string", "description": "Token contract address" } } }arguments 17 linesupdate_program_config unknown never probed
Update default cashback_rate and/or points_per_dollar for a program (same as merchant dashboard sliders)
{ "type": "object", "anyOf": [ { "required": [ "cashback_rate" ] }, { "required": [ "points_per_dollar" ] } ], "required": [ "token_address" ], "properties": { "cashback_rate": { "type": "number", "description": "New default cashback % for earn (1–100). Omit to leave unchanged." }, "token_address": { "type": "string", "description": "Token contract address (0x...)" }, "points_per_dollar": { "type": "number", "description": "New points per $1 (0–1000, exclusive 0). Omit to leave unchanged." } } }arguments 32 lineslist_rewards unknown never probed
List rewards for a loyalty program by token_address. Includes redemption metrics (total vouchers issued, redeemed, and last-30-day counts) for each reward.
{ "type": "object", "required": [ "token_address" ], "properties": { "token_address": { "type": "string", "description": "Token contract address (0x...)" } } }arguments 12 linescreate_reward unknown never probed
Create a new reward redeemable with loyalty tokens
{ "type": "object", "required": [ "token_address", "name", "cost" ], "properties": { "cost": { "type": "number", "description": "Token cost to redeem" }, "name": { "type": "string", "description": "Reward name" }, "description": { "type": "string", "description": "Reward description" }, "token_address": { "type": "string", "description": "Token contract address" } } }arguments 26 linesmint_loyalty_tokens unknown never probed
Record mint intent and get a fee-first `calls[]` bundle: protocol fee mint FIRST, then the recipient mint. The protocol fee is charged in the merchant's own loyalty tokens (not USDC). Submit both calls in order (atomically via EIP-5792 send_calls if your wallet supports it), then call confirm_mint_fee (or POST /agent-api/mint/confirm) with obligation_id, fee_tx_hash, and recipient_tx_hash. Unconfirmed fee obligations block future mints. Accepts a 0x Base wallet address or customer email in recipient_address (or recipient_email), automatically resolving the customer's wallet.
{ "type": "object", "anyOf": [ { "required": [ "recipient_address" ] }, { "required": [ "recipient" ] }, { "required": [ "recipient_email" ] } ], "required": [ "token_address", "amount" ], "properties": { "amount": { "type": "number", "description": "Tokens to mint" }, "recipient": { "type": "string", "description": "Legacy alias for recipient_address (0x address or email)" }, "token_address": { "type": "string", "description": "Token contract address" }, "recipient_email": { "type": "string", "description": "Customer email address to resolve to their Base wallet" }, "recipient_address": { "type": "string", "description": "Customer 0x Base wallet address or customer email receiving minted tokens. Preferred — matches REST." } } }arguments 46 linestransfer_loyalty_tokens unknown never probed
Get calldata to transfer loyalty tokens between wallets
{ "type": "object", "required": [ "token_address", "to", "amount" ], "properties": { "to": { "type": "string", "description": "Recipient wallet (0x...)" }, "amount": { "type": "number", "description": "Tokens to transfer" }, "token_address": { "type": "string", "description": "Token contract address (0x...)" } } }arguments 22 linesearn_points unknown never probed
Calculate and mint loyalty tokens based on purchase amount and program's cashback rate, optionally redeeming existing points at checkout (points_to_redeem or redeem_all) to reduce the payable receipt amount before calculating new cashback. Returns a fee-first `calls[]` bundle (protocol fee mint first, then the customer mint) — submit in order, atomically via EIP-5792 if supported, then call confirm_mint_fee (or POST /agent-api/mint/confirm) with obligation_id, fee_tx_hash, and recipient_tx_hash. Unconfirmed fee obligations block future mints.
{ "type": "object", "required": [ "token_address", "customer_address", "purchase_amount" ], "properties": { "redeem_all": { "type": "boolean", "description": "If true, redeems all available customer loyalty points (up to purchase_amount when positive)." }, "cashback_rate": { "type": "number", "description": "Override cashback rate (%). If omitted, uses the program's default rate." }, "token_address": { "type": "string", "description": "Token contract address (0x...)" }, "customer_email": { "type": "string", "description": "Customer email address" }, "purchase_amount": { "type": "number", "description": "Purchase amount in currency units (e.g. dollars)" }, "customer_address": { "type": "string", "description": "Customer wallet (0x...) or email address" }, "points_to_redeem": { "type": "number", "description": "Optional integer loyalty points to redeem at the counter to reduce purchase_amount." } } }arguments 38 linesconfirm_mint_fee unknown never probed
Confirm a prepared mint on Base. Verifies the protocol-fee mint and, when recipient_tx_hash is set (or the fee receipt already contains the recipient mint), writes customer_tier_status so get_token_balance leaves 0. Same hash for both fields when EIP-5792 batched the calls. A second call with recipient_tx_hash still credits the customer after the fee is already settled.
{ "type": "object", "required": [ "obligation_id", "fee_tx_hash" ], "properties": { "fee_tx_hash": { "type": "string", "description": "Transaction hash of the protocol fee mint" }, "obligation_id": { "type": "string", "description": "fee_obligation_id returned by mint_loyalty_tokens or earn_points" }, "recipient_tx_hash": { "type": "string", "description": "Transaction hash of the mint to the recipient. Same as fee_tx_hash when both mints are in one transaction. Required to update GET /balance." } } }arguments 21 lineslist_mints unknown never probed
List mint intents for this merchant. status=pending means transaction_hash is still null (confirm has not credited the recipient). status=completed means the recipient mint was recorded. GET /balance stays 0 until confirm.
{ "type": "object", "properties": { "status": { "type": "string", "description": "pending or completed" }, "token_address": { "type": "string", "description": "Optional loyalty token" } } }arguments 13 lineslist_fee_obligations unknown never probed
List protocol-fee obligations for this API key. status=unpaid is an alias for pending. Each unpaid row includes next_action describing POST /mint/confirm.
{ "type": "object", "properties": { "status": { "type": "string", "description": "unpaid, pending, settled, or failed" } } }arguments 9 linesget_token_balance unknown never probed
Get loyalty token balance and tier info for a customer (accepts 0x Base wallet address or customer email in customer_address / customer_email)
{ "type": "object", "required": [ "token_address", "customer_address" ], "properties": { "token_address": { "type": "string", "description": "Token contract address" }, "customer_address": { "type": "string", "description": "Customer 0x Base wallet address or customer email" } } }arguments 17 linesget_program_analytics unknown never probed
Get analytics for one of your loyalty programs
{ "type": "object", "required": [ "token_address" ], "properties": { "token_address": { "type": "string", "description": "Token contract address (0x...)" } } }arguments 12 lineslist_marketplace_offers unknown never probed
List active token trading offers on the marketplace
{ "type": "object", "properties": { "limit": { "type": "number", "description": "Max results (1-100)" }, "status": { "type": "string", "description": "Filter: active/completed/cancelled" }, "token_address": { "type": "string", "description": "Optional. When set, only offers that give or ask for this token." } } }arguments 17 linesredeem_reward unknown never probed
Redeem a reward by providing a verified token transfer transaction hash. Creates a voucher for the customer.
{ "type": "object", "required": [ "reward_id", "customer_address", "transaction_hash" ], "properties": { "reward_id": { "type": "string", "description": "UUID of the reward to redeem" }, "customer_address": { "type": "string", "description": "Wallet address of the customer who transferred tokens" }, "transaction_hash": { "type": "string", "description": "Onchain tx hash of the token transfer from customer to merchant" } } }arguments 22 linesuse_voucher unknown never probed
Mark a voucher as used at the merchant. Send one of voucher_code or voucher_id (anyOf). If neither is sent the tool returns error_code missing_identifier and an example.
{ "type": "object", "anyOf": [ { "required": [ "voucher_code" ] }, { "required": [ "voucher_id" ] } ], "properties": { "voucher_id": { "type": "string", "description": "Voucher UUID. Use this OR voucher_code." }, "voucher_code": { "type": "string", "description": "Voucher code (LOYAL-XXXX-XXXX-XXXX-XXXX). Use this OR voucher_id." } } }arguments 25 linescheck_voucher_status unknown never probed
Check voucher status for this merchant. Send one of code, voucher_code, or voucher_id (anyOf). If none is sent the tool returns error_code missing_identifier, an example, and next_action. Anonymous public lookup is GET /agent-api/vouchers/status.
{ "type": "object", "anyOf": [ { "required": [ "code" ] }, { "required": [ "voucher_id" ] }, { "required": [ "voucher_code" ] } ], "properties": { "code": { "type": "string", "description": "Voucher code (LOYAL-XXXX-XXXX-XXXX-XXXX). One of code, voucher_code, or voucher_id is required." }, "voucher_id": { "type": "string", "description": "Voucher UUID. One of code, voucher_code, or voucher_id is required." }, "voucher_code": { "type": "string", "description": "Alias of code. One of code, voucher_code, or voucher_id is required." } } }arguments 34 linescreate_personalized_offer unknown never probed
Create a personalized offer for a specific customer. Use when analytics reveal engagement patterns (e.g., inactive customers, high-value segments).
{ "type": "object", "required": [ "token_address", "customer_address", "title" ], "properties": { "title": { "type": "string", "description": "Offer title (e.g., 'Welcome back! 20% bonus tokens')" }, "valid_days": { "type": "number", "description": "How many days the offer is valid (default: 7)" }, "description": { "type": "string", "description": "Offer description" }, "bonus_tokens": { "type": "number", "description": "Bonus tokens to award" }, "token_address": { "type": "string", "description": "Token contract address" }, "customer_address": { "type": "string", "description": "Customer wallet address" }, "discount_percentage": { "type": "number", "description": "Discount percentage (0-100)" } } }arguments 38 linesupdate_reward_status unknown never probed
Activate or deactivate a reward in the catalog. Use to manage reward availability based on analytics.
{ "type": "object", "required": [ "reward_id", "is_active" ], "properties": { "is_active": { "type": "boolean", "description": "true to activate, false to deactivate" }, "reward_id": { "type": "string", "description": "UUID of the reward" } } }arguments 17 linessend_report unknown never probed
Internal. Send a report to the merchant's Agent Reports dashboard (SEO audits, growth ideas, anomalies, weekly summaries). Not a loyalty action.
{ "type": "object", "required": [ "agent_role", "report_type", "title", "content" ], "properties": { "title": { "type": "string", "description": "Report title (max 500 chars)" }, "content": { "type": "string", "description": "Report body text (max 10000 chars)" }, "priority": { "type": "string", "description": "Priority: low, medium, high, or critical" }, "agent_role": { "type": "string", "description": "Your role: ceo, seo, growth, or analyst" }, "report_type": { "type": "string", "description": "Type: seo_audit, growth_idea, data_report, anomaly, task, recommendation, or weekly_report" }, "action_items": { "type": "array", "items": { "type": "string" }, "description": "List of suggested action items" } } }arguments 38 lineslist_my_reports unknown never probed
Internal. List reports this agent submitted (status new, reviewed, or done).
{ "type": "object", "properties": { "limit": { "type": "number", "description": "Max results 1-50 (default: 20)" }, "status": { "type": "string", "description": "Filter by status: new, reviewed, done (optional)" } } }arguments 13 linesupdate_report_status unknown never probed
Internal. Set a report you submitted to reviewed or done.
{ "type": "object", "required": [ "report_id", "status" ], "properties": { "status": { "type": "string", "description": "New status: reviewed or done" }, "report_id": { "type": "string", "description": "UUID of the report" } } }arguments 17 linesdelete_report unknown never probed
Internal. Delete a report you submitted.
{ "type": "object", "required": [ "report_id" ], "properties": { "report_id": { "type": "string", "description": "UUID of the report to delete" } } }arguments 12 linesexport_customers unknown never probed
Export customer data for a specific loyalty program. Returns wallet addresses, voucher stats, balances, and tier info. Use for analytics, segmentation, and personalized offers.
{ "type": "object", "required": [ "token_address" ], "properties": { "token_address": { "type": "string", "description": "Token address of the loyalty program" } } }arguments 12 lineslist_store_discount_codes unknown never probed
List discount codes for this merchant's Shopify store, plus how customers spend points (online code, register voucher, or both).
{ "type": "object", "properties": { "token_address": { "type": "string", "description": "Program address. Omit to list every linked store." } } }arguments 9 linesupdate_store_discount_code unknown never probed
Mark a Shopify discount code used, or cancel it and return the loyalty points. Same actions as the merchant discount-code journal.
{ "type": "object", "required": [ "redemption_id", "action" ], "properties": { "action": { "type": "string", "description": "use or cancel" }, "redemption_id": { "type": "string", "description": "Id from list_store_discount_codes." } } }arguments 17 linesset_store_sales_channel unknown never probed
Set how this store's customers spend loyalty points: online (checkout code), offline (voucher at the register), or both (the shopper chooses).
{ "type": "object", "required": [ "channel" ], "properties": { "channel": { "type": "string", "description": "online, offline, or both" } } }arguments 12 linescreate_gift_certificate unknown never probed
Create a gift / welcome certificate (UDS-style) with a unique random redemption code (LOYAL-XXXX-XXXX-XXXX). Customer redeems via QR or by entering the code; merchant then mints tokens on-chain. Use for welcome bonuses, promo campaigns, partnership gifts.
{ "type": "object", "required": [ "token_address", "usd_amount" ], "properties": { "title": { "type": "string", "description": "Display title (default: 'Gift Certificate')" }, "quantity": { "type": "number", "description": "Number of certificates to create as a batch (1–100, default 1)" }, "image_url": { "type": "string", "description": "Optional public image URL for the cert design" }, "usd_amount": { "type": "number", "description": "Certificate face value in USD (positive)" }, "description": { "type": "string", "description": "Optional descriptive text shown to the customer" }, "token_address": { "type": "string", "description": "ERC-20 loyalty token address (must belong to the agent's merchant)" }, "expires_in_days": { "type": "number", "description": "Validity period in days (omit for no expiry)" }, "points_per_dollar": { "type": "number", "description": "Optional override of program rate (e.g. 10 = 10 tokens per $1). Defaults to program's points_per_dollar." }, "max_redemption_percent": { "type": "number", "description": "Max % of any future purchase the customer can pay with these tokens (5–100). Default 50." } } }arguments 45 lineslist_gift_certificates unknown never probed
List gift certificates issued by the agent's merchant (with status and redemption info).
{ "type": "object", "properties": { "limit": { "type": "number", "description": "Max rows (default 50, max 200)" }, "status": { "type": "string", "description": "Filter by status: active, pending_mint, redeemed, expired, revoked" }, "token_address": { "type": "string", "description": "Filter by program token address (optional)" } } }arguments 17 linesrevoke_gift_certificate unknown never probed
Revoke an active gift certificate (status active -> revoked). Only the issuing merchant can revoke. Already-redeemed/minted certificates cannot be revoked.
{ "type": "object", "required": [ "certificate_id" ], "properties": { "certificate_id": { "type": "string", "description": "UUID of the certificate from create_gift_certificate / list_gift_certificates" } } }arguments 12 linesmark_gift_certificate_minted unknown never probed
After the merchant submits the on-chain mint transaction for a claimed gift certificate, call this to mark it as minted (status pending_mint -> redeemed) and store the mint tx hash.
{ "type": "object", "required": [ "certificate_id", "transaction_hash" ], "properties": { "certificate_id": { "type": "string", "description": "UUID of the certificate" }, "transaction_hash": { "type": "string", "description": "Base L2 mint transaction hash (0x...)" } } }arguments 17 linesbazaar_discover_resources unknown never probed
Discover third-party x402-paid resources published in Coinbase CDP's Bazaar (docs, data feeds, AI inference, etc). Read-only. Filter by free-text q and/or network (e.g. 'base').
{ "type": "object", "properties": { "q": { "type": "string", "description": "Free-text filter matched against the resource JSON (name/description/url)" }, "limit": { "type": "number", "description": "Max rows returned (default 25, max 100)" }, "cursor": { "type": "string", "description": "Pagination cursor from a previous call" }, "network": { "type": "string", "description": "Filter by network, e.g. 'base' or 'base-sepolia'" } } }arguments 21 linesbazaar_discover_mcp_servers unknown never probed
Discover third-party MCP servers published in Coinbase CDP's Bazaar. Read-only. Filter by free-text q and/or network.
{ "type": "object", "properties": { "q": { "type": "string", "description": "Free-text filter matched against the server JSON" }, "limit": { "type": "number", "description": "Max rows (default 25, max 100)" }, "cursor": { "type": "string", "description": "Pagination cursor" }, "network": { "type": "string", "description": "Filter by network, e.g. 'base'" } } }arguments 21 linesbazaar_probe_x402 unknown never probed
GET a candidate x402 URL and, if it responds HTTP 402, return the parsed payment requirements (accepts[]) so the caller can decide whether to pay. HTTPS only. No signing performed.
{ "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string", "description": "Full https:// URL of the x402-paid endpoint" } } }arguments 12 linesbazaar_pay_and_call unknown never probed
Pay a Loyal Spark x402 URL on api.loyalspark.online with the merchant agent's CDP MPC wallet (EIP-3009 exact scheme, Base USDC). Other hosts are refused before any signature. Requires scope 'mint' and an active CDP wallet. max_usdc default 0.25, hard limit 10.
{ "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string", "description": "Full https:// URL of the x402 resource" }, "body": { "description": "Optional JSON request body for non-GET methods" }, "method": { "enum": [ "GET", "POST", "PUT", "PATCH", "DELETE" ], "type": "string", "description": "HTTP method (default GET)" }, "headers": { "type": "object", "description": "Extra request headers (Accept/Content-Type auto-set)" }, "max_usdc": { "type": "number", "description": "Spend cap for THIS call in USDC (default 0.25, must be ≤ 10)" }, "allowed_schemes": { "type": "array", "items": { "type": "string" }, "description": "x402 schemes to accept (default ['exact'])" }, "allowed_networks": { "type": "array", "items": { "type": "string" }, "description": "Networks to accept (default ['base', 'eip155:8453'])" } } }arguments 48 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your agent card — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idf1ae777959b63b4a.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/f1ae777959b63b4a/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/f1ae777959b63b4a?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
How much of the published card is filled in. Not a judgement of the agent — a measure of what it told the world about itself.
Places where the published card departs from the specification. Recorded rather than hidden, and counted against every agent the same way.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 2
- ok
- 0
- failed
- 2
- success rate
- 0%
- median latency
- 526ms
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
2 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.
Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.
- api.loyalspark.online loyal-spark-mcp