{
  "name": "Remesso",
  "description": "Recurring stablecoin payments on Celo, bound by a mandate the payer signs on-chain. Another agent can bring a payment forward; nothing can redirect, resize or extend one.",
  "identity": {
    "erc8004": {
      "agentId": 9867,
      "registry": "0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
      "chainId": 42220
    },
    "selfAgentId": "191",
    "agentAddress": "0x5C3EBb0084233156ba51a5C2dfD42d88d5a74CA6",
    "registry": "0xaC3DF9ABf80d0F5c020C06B04Cced27763355944",
    "proof": "self-agent-id",
    "humanVerified": true
  },
  "chain": {
    "network": "celo",
    "chainId": 42220,
    "executor": "0x288b7cDD10e069eA64D4984c3E5fa0D9c5816009",
    "trigger": "0x3c754AD31e802D5fA65487f460dED65Aba749Cd1",
    "attributionCode": "remesso"
  },
  "receiving": {
    "needs": [
      "an address on Celo"
    ],
    "doesNotNeed": [
      "gas",
      "a token balance",
      "an account with us",
      "our software"
    ],
    "assets": [
      "USDT",
      "USDC",
      "cUSD",
      "wARS",
      "wBRL",
      "wCOP"
    ],
    "howToHandOverYourAddress": [
      {
        "how": "ask directly",
        "what": "POST https://engaboljiqudghvzmebq.supabase.co/functions/v1/request-payment",
        "detail": "free; returns a link and puts the request in the payer's app"
      },
      {
        "how": "send a link",
        "what": "https://remesso-3q67.vercel.app/schedules/new?to=0xYourAddress&amount=5&every=week",
        "detail": "opens their form already filled in; they review and sign"
      },
      {
        "how": "tell them the address",
        "what": "any channel you already use",
        "detail": "they type it into the recipient field themselves"
      }
    ],
    "thePayerDecides": "every route above ends with the payer signing createSchedule in their own wallet. Nothing here obliges anyone to pay you.",
    "verify": "read getSchedule(id) on the executor — the recipient, amount and cadence are fixed there, and nobody can change them, including us"
  },
  "services": [
    {
      "name": "naira-rate",
      "description": "Live USDT/NGN and USDC/NGN from on-chain RFQ makers: bid, ask and last, with mid and spread when both sides are quoted and null for both when they are not. What Remesso prices a naira corridor from.",
      "endpoint": "https://engaboljiqudghvzmebq.supabase.co/functions/v1/rate-service",
      "method": "POST",
      "input": {},
      "payment": {
        "protocol": "x402",
        "version": 1,
        "network": "celo",
        "assets": [
          {
            "symbol": "USDC",
            "address": "0xcebA9300f2b948710d2653dD7B07f33A8B32118C",
            "eip712": {
              "name": "USDC",
              "version": "2"
            }
          },
          {
            "symbol": "USDT",
            "address": "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e",
            "eip712": {
              "name": "Tether USD",
              "version": "1"
            }
          },
          {
            "symbol": "USAT",
            "address": "0xD2ab3C9A02DBBAB236BfEC45D1d755DF4267F771",
            "eip712": {
              "name": "Tether America USD",
              "version": "1"
            }
          }
        ],
        "amount": "1000",
        "decimals": 6,
        "facilitator": "https://api.x402.celo.org",
        "discover": "POST without X-PAYMENT and read the 402 body"
      },
      "refusals": [
        "503 if the upstream rate feed is unreachable — you are not charged"
      ]
    },
    {
      "name": "capabilities",
      "description": "This document. Free, because discovery that costs money is discovery nobody does.",
      "endpoint": "https://engaboljiqudghvzmebq.supabase.co/functions/v1/agent",
      "method": "GET",
      "payment": {
        "protocol": "none"
      }
    },
    {
      "name": "request-payment",
      "description": "Ask a Remesso sender to pay you on a schedule. Free. Advisory only: it prefills their form and returns a link — it cannot create a schedule, approve an allowance or move a token. Only the payer can, and only by signing in their own wallet.",
      "endpoint": "https://engaboljiqudghvzmebq.supabase.co/functions/v1/request-payment",
      "method": "POST",
      "input": {
        "payer": "the wallet address you are asking",
        "to": "the address you want paid",
        "amount": "optional, e.g. \"5\"",
        "token": "optional: USDT, USDC, cUSD, wARS, wBRL, wCOP",
        "every": "optional: week | fortnight | month | quarter",
        "runs": "optional: how many payments",
        "from": "optional: who is asking",
        "note": "optional: why"
      },
      "payment": {
        "protocol": "none"
      },
      "refusals": [
        "400 if either address is not a wallet address",
        "429 once a payer has 10 requests waiting — an inbox anyone can fill is an inbox nobody reads"
      ]
    },
    {
      "name": "trigger-run",
      "description": "Bring one payment of an existing schedule forward. The caller buys timing and nothing else. Stablecoin payouts only: naira schedules are refused before a price is quoted.",
      "endpoint": "https://engaboljiqudghvzmebq.supabase.co/functions/v1/trigger-run",
      "method": "POST",
      "input": {
        "schedule": "on-chain schedule id, as a decimal string"
      },
      "payment": {
        "protocol": "x402",
        "version": 1,
        "network": "celo",
        "assets": [
          {
            "symbol": "USDC",
            "address": "0xcebA9300f2b948710d2653dD7B07f33A8B32118C",
            "eip712": {
              "name": "USDC",
              "version": "2"
            }
          },
          {
            "symbol": "USDT",
            "address": "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e",
            "eip712": {
              "name": "Tether USD",
              "version": "1"
            }
          },
          {
            "symbol": "USAT",
            "address": "0xD2ab3C9A02DBBAB236BfEC45D1d755DF4267F771",
            "eip712": {
              "name": "Tether America USD",
              "version": "1"
            }
          }
        ],
        "amount": "10000",
        "decimals": 6,
        "facilitator": "https://api.x402.celo.org",
        "discover": "POST without X-PAYMENT and read the 402 body"
      },
      "refusals": [
        "403 if the schedule's payer did not grant this executor the right to collect",
        "403 once the granted collections are used up",
        "403 within 60 seconds of the previous collection",
        "403 for any schedule paying out in cNGN — naira payouts are switched off",
        "409 if the payment itself reverts — the caller is not charged"
      ]
    }
  ],
  "guarantees": [
    "The recipient is fixed when the payer signs and cannot be changed by anyone.",
    "The amount per payment is fixed at the same moment.",
    "A collection consumes one scheduled payment; it never adds one.",
    "Collections stop at the count the payer granted, and at their end date.",
    "The payer can withdraw the grant at any time, without our cooperation.",
    "Revoking the token allowance stops everything, also without our cooperation."
  ],
  "verification": {
    "contract": "https://celoscan.io/address/0x288b7cDD10e069eA64D4984c3E5fa0D9c5816009",
    "source": "https://github.com/crackedstudio/Remesso",
    "reads": {
      "triggerability": "triggerability(uint256 id, address caller) view",
      "schedule": "getSchedule(uint256 id) view"
    }
  },
  "identityChecksAvailable": true
}