Onchain loyalty platform on Base Network
Onchain loyalty platform on Base Network. Businesses launch branded rewards in minutes, customers earn real value with every purchase, and AI agents automate the rest via REST and MCP. On the paid retry send the payment together with header x-api-key: rwk_... or Authorization: Bearer rwk_.... A payment without a live key is not charged. Holder key, not a merchant key. There is no paid registration. POST https://api.loyalspark.online/siwe-nonce, sign a SIWE message (Chain ID 8453) with the holder wallet and no special phrase, then POST {message, signature, name} to https://api.loyalspark.online/recipient-api/register. The rwk_ key sees only that wallet: balances, redeem, vouchers, transfer calldata, P2P, gift claims. Guide: https://loyalspark.online/.well-known/skills/00-getting-started.md The call is scoped to the wallet behind that key. 16 skill guides at loyalspark.online/.well-known/skills/index.md.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://api.loyalspark.online/x402-gateway/recipient-api/offers
| Category | Commerce and shopping |
|---|---|
| Provider host | api.loyalspark.online |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 59 from 25 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"body": {},
"bodyType": "json",
"headers": {
"x-api-key": "rwk_..."
},
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"headers": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"queryParams": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"inputSchema": {
"type": "object"
},
"output": {
"properties": {
"example": {},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}