
Long-term memory for AI agents that belongs to the user and follows them across agents and sessions. Store and recall user facts, preferences, instructions and decisions with hybrid semantic + keyword search (local embeddings, no external AI API). Get a session-start profile card (how to talk to this user, standing instructions, current projects, when to ask clarifying questions). Handle contradictions with supersede-not-delete history. Optional client-side encrypted memories the server cannot read. Portable import/export format; forget and export are always free. Pay per call in USDC on Base via x402; the user authorizes each agent once with a wallet signature.
https://router.fluxapay.xyz/api/mnemo-memory-api/{CREATOR_UID}The user contradicted an old memory: mark it superseded (history kept) and store or link the replacement, so the latest value wins in recall. Use when a preference or fact changes. Requires the user's delegation token in header X-Mnemo-Token: mn_... (free, one time: POST https://memory.reversecaptcha.fun/v1/memory/delegate/challenge {user: wallet address, agent: name}, the user signs the returned message with their wallet, then POST https://memory.reversecaptcha.fun/v1/memory/delegate with the signature).
Bulk import up to 1000 memories in the portable format mnemo.portable-memory/1 (cold start from another agent or platform). Export (GET /v1/memory/export) and forget are free on the Mnemo origin. Requires the user's delegation token in header X-Mnemo-Token: mn_... (free, one time: POST https://memory.reversecaptcha.fun/v1/memory/delegate/challenge {user: wallet address, agent: name}, the user signs the returned message with their wallet, then POST https://memory.reversecaptcha.fun/v1/memory/delegate with the signature).
Report how the user reacted to you asking vs assuming, so the profile learns when this user wants clarifying questions, across sessions and agents. Requires the user's delegation token in header X-Mnemo-Token: mn_... (free, one time: POST https://memory.reversecaptcha.fun/v1/memory/delegate/challenge {user: wallet address, agent: name}, the user signs the returned message with their wallet, then POST https://memory.reversecaptcha.fun/v1/memory/delegate with the signature).
Session-start profile card for the user: standing instructions, preferences, how to talk to them, current projects, recent decisions and clarification tolerance (whether to ask or assume). Call once at the start of a session. Cached for an hour. Requires the user's delegation token in header X-Mnemo-Token: mn_... (free, one time: POST https://memory.reversecaptcha.fun/v1/memory/delegate/challenge {user: wallet address, agent: name}, the user signs the returned message with their wallet, then POST https://memory.reversecaptcha.fun/v1/memory/delegate with the signature).
Recall relevant memories for a question with hybrid semantic + keyword search, re-ranked by recency, confidence and usefulness. Returns top-k memories with scores. Use before answering anything that depends on what the user said before (preferences, allergies, projects, past decisions). Requires the user's delegation token in header X-Mnemo-Token: mn_... (free, one time: POST https://memory.reversecaptcha.fun/v1/memory/delegate/challenge {user: wallet address, agent: name}, the user signs the returned message with their wallet, then POST https://memory.reversecaptcha.fun/v1/memory/delegate with the signature).
Save a memory for the user: a fact, preference, instruction, decision, or transient state (with ttl so it expires). Deduplicates automatically. Use whenever the user tells you something worth remembering across sessions. Requires the user's delegation token in header X-Mnemo-Token: mn_... (free, one time: POST https://memory.reversecaptcha.fun/v1/memory/delegate/challenge {user: wallet address, agent: name}, the user signs the returned message with their wallet, then POST https://memory.reversecaptcha.fun/v1/memory/delegate with the signature).
Copy this prompt and paste it into your AI agent (like Claude, GPT-4, etc.) to enable automatic X-402 payment handling.
** Your task ** Call the API at: https://router.fluxapay.xyz/api/mnemo-memory-api/{CREATOR_UID}
Follow the steps below in order.
** Step 1 - Install FluxA Wallet CLI **
npm install -g @fluxa-pay/fluxa-wallet
Or use without installing: npx fluxa-wallet <command>
** Step 2 - Register agent **
fluxa-wallet init --name "<YOUR_AGENT_NAME>" --client "<YOUR_CLIENT>"
The response may include an authorization URL. Present the user with options: [Yes, open the link] [No, don't open]. If YES: run 'open "<URL>"' to open in their browser.
Verify: fluxa-wallet status
** Step 3 - Discover endpoints **
curl https://router.fluxapay.xyz/api/mnemo-memory-api/{CREATOR_UID}
Returns JSON with: name, description, endpoints (paths, methods, descriptions, prices), paymentRequired, and networks.
** Step 4 - Choose payment method **
Ask the user: [On-chain USDC (Base)] or [FluxA Monetize Credits]
If USDC:
- --currency USDC
- --amount in atomic units (6 decimals, e.g., 100000 = 0.10 USDC)
If Credits (1 credit = 1 USDC):
- --currency FLUXA_MONETIZE_CREDITS
- --amount in 2-decimal units (e.g., 10 = 0.10 credits, 100 = 1.00 credits)
** Step 5 - Create an intent mandate **
x402 v3 uses intent mandates: the user pre-approves a spending plan (budget + time window), then the agent makes autonomous payments within those limits.
fluxa-wallet mandate-create \
--desc "Spend up to <BUDGET> for <DESCRIPTION> valid for <DURATION>" \
--amount <BUDGET_IN_UNITS> \
--seconds <DURATION_IN_SECONDS> \
--currency <USDC or FLUXA_MONETIZE_CREDITS>
Options:
- --desc (required): Human-readable spending plan description
- --amount (required): Budget in units for the chosen currency (see Step 4)
- --seconds (optional, default 28800 = 8h): Duration in seconds
- --currency (optional, default USDC): USDC or FLUXA_MONETIZE_CREDITS
** Step 6 - Get user to sign the mandate **
The response from Step 5 includes mandateId and authorizationUrl (TTL: 10 minutes).
Present the user with options: [Yes, open the link] [No, don't open]. If YES: run 'open "<authorizationUrl>"' to open in their browser.
** Step 7 - Wait for mandate to be signed **
fluxa-wallet mandate-status --id <MANDATE_ID>
Poll until mandate.status is "signed". The response also includes remainingAmount.
Important: Use --id, not --mandate.
** Step 8 - Call the API **
curl https://router.fluxapay.xyz/api/mnemo-memory-api/{CREATOR_UID}
Optionally add the X-Agent-ID header for agent attribution (its value is the agent_id from 'fluxa-wallet status'): curl -H "X-Agent-ID: <YOUR_AGENT_ID>" https://router.fluxapay.xyz/api/mnemo-memory-api/{CREATOR_UID}
If it returns HTTP 402, continue to Step 9.
** Step 9 - Pay via x402 v3 **
Pass the complete HTTP 402 response body as --payload:
fluxa-wallet x402-v3 \
--mandate <MANDATE_ID> \
--payload '$PAYLOAD_402'
The payload must contain an accepts array. Do NOT extract individual fields - pass the entire 402 response JSON.
The response includes xPaymentB64 (the payment token).
** Step 10 - Retry with payment token **
Retry the same request with the X-Payment header (optionally add X-Agent-ID for attribution):
curl -H "X-Payment: <xPaymentB64>" <ORIGINAL_API_URL>
Return the raw API response to the user without post-processing.
** Opening links for user **
Whenever you need to open a URL (authorization, approval, or any external link):
1. Present the user with a choice using your interactive options/menu capability (e.g., AskUserQuestion tool)
2. Options: [Yes, open the link] [No, don't open]
3. If YES: run 'open "<URL>"' to open in their default browser
4. If NO: ask how they would like to proceed
** Error handling **
- mandate_not_signed: User hasn't signed yet - ask them to open authorizationUrl
- mandate_expired: Time window passed - create a new mandate
- mandate_budget_exceeded: Budget too low - create a new mandate with a higher limit
- agent_not_registered: No Agent ID - run 'fluxa-wallet init' first
- Invalid payload: missing accepts array: Pass the full 402 response JSON