Pinlo

Agent memory, anchored on Robinhood Chain

Every agent remembers.
Every agent connects.

Pinlo gives AI agents a memory that outlasts the session. Save the brief, the preferences and the decisions once, recall them in the next run, and share them with other agents you trust.

Agents remember. Networks connect. Memory scales.

SHARED MEMORY
Live from Robinhood Chain
Latest block
…
Block pace
…
Gas price
…
ETH / USD
…
Chainlink
One anchor costs
…
Anchors so far
Practice
contract not deployed

01 / The memory network

Separate agents.
One shared recall.

Agents that serve the same project can read from the same mind. Save a note as one of them below, switch to another, and it is already there.

Try it here

Pick an agent

One mind0 recordsResearchTradingSupportPlannerCodingForecastField robotReviewerWriterScheduler

Save a note as one agent, then pick another: it reads the same record. The note stays in this page only.

In production each agent holds its own key and reaches the mind through a grant. See the memory API.

02 / Build it in

Plug memory
into your agent.

Call the memory API from a script with the agent's own key, send signed HTTP requests from any language, or encrypt records in the browser before they leave it. Pick whichever matches how your agent already runs.

remember.mjsNode 20

$ npm install viem

import { privateKeyToAccount } from "viem/accounts";
import { pinlo } from "./pinlo-agent.mjs"; // from the repo's examples folder

// The agent's own key, never a person's main wallet.
const agent = privateKeyToAccount(process.env.AGENT_KEY);
const memory = pinlo({ site: "https://pinlo.xyz", account: agent });

// Open (or reopen) a mind by label: same wallet + label = same id.
const mind = memory.mind("research-desk");

// Save context the next session will need.
await mind.remember("We quote every price in USDG.", {
  kind: "preference",
  tags: ["style"],
});

// Next session: pull back what matters for this request.
const { matches, root } = await mind.recall("how do we quote prices?");
console.log(matches.map((m) => m.record.text), root);

The agent signs each request with its own key. Hosted records are plain text unless you encrypt them first.

03 / How sharing works

Pick up
the thread
next session.

A mind is a labelled set of records owned by one wallet. Agents write to it, the owner anchors versions, and any wallet with a grant can recall from it. A fresh session starts from what was saved, not from zero.

  1. 01ConnectA wallet opens a mind; each agent signs with its own key.
  2. 02RememberRecords go in with a kind, tags and a hash.
  3. 03ContinueLater sessions recall by keyword or tag and check the hashes.

Walk-through

01 / 05

Planning agent · saves

  • Launch brief: three pages, plain words
  • Style: short paragraphs, no jargon
  • Decision: pricing page ships first

Writing agent · recalls

  • waiting
  • waiting
  • waiting

Planning agent

Session 1 ends

The agent lists what it wants to keep: the brief, a style rule and a decision.

04 / Storage, proof and control

What sits under the memory.

You decide what an agent saves, who may read it and when a version is fixed. The chain keeps the proof; the text stays off-chain.

Robinhood Chain · root, version, grantsIPFS snapshot · optionalHosted store · 30-day TTLYour agent's records

01 / Keep

Context that outlives the chat.

Facts, preferences, decisions and sources are saved as small records outside the conversation. Your code recalls the ones a request needs and adds them to the prompt.

Example mind · launch-plan

Brief
Three pages, plain words
Preference
Short paragraphs
Decision
Pricing page ships first

Ready for the next session

02 / Prove

Check a record against its anchor.

Each record is hashed, and each anchored version stores the Merkle root of every record at that moment. A short proof shows a record belongs to a version. That proves the record is unchanged, not that it is correct.

Example check

record hash0x9c1e…41d7
anchored root v40x5a08…e2b3
proof folds to0x5a08…e2b3 ✓

03 / Choose

Decide who reads what.

One mind per project keeps scopes apart. The owner grants read or write access per wallet, with an expiry if wanted, and revokes it in one step. Encryption is a separate switch: turn it on for anything private.

Writing agentRead and writeGranted
Review agentRead, 30 daysGranted
Billing agentNo grantNot shared

05 / Where the bytes live

Text off-chain. Proof on-chain.

Memory text never goes on-chain. Here is exactly where each piece is kept and for how long, so you can decide what an agent should save.

LayerWhat it holdsHow longWho can read it
Your browserEvery mind you open and every record you write, so the app works with no server at all.Until you clear site dataOnly you, on this device
Hosted storeRecords synced from the app or written by agents through the API, so another device or agent can recall them.30 days after the last write (practice period)The owner and wallets with a grant
IPFS snapshotOptional: one JSON file with all records of a mind, pinned through the site. Its address goes in the anchor.While the pin is keptAnyone with the content id
Robinhood ChainThe root hash, record count, version number and snapshot link of each anchor, plus every access grant.As long as the chain runsPublic

Full details on the storage page.

07 / Questions

Before you plug in.

What a mind is, what gets shared, what the chain sees and what it costs.

01

What is Pinlo?

Pinlo is a memory layer for AI agents. An agent saves what it learned in one session as short records (facts, preferences, decisions, sources) and reads them back in the next one. Each set of records can be anchored on Robinhood Chain as a hash, so later readers can check nothing was changed.

02

How does Pinlo work?

A wallet opens a mind with a label. Agents write records to it through the app or the memory API, signing each request with their own key. The records are hashed into a Merkle root; the owner anchors that root as a new version in the PinloCortex contract, and grants other wallets read or write access.

03

Can two agents read the same mind?

Yes. The owner of a mind grants another wallet read access, or read and write access, with an optional expiry. Any agent holding that wallet's key can then recall the same records. Grants can be revoked at any time.

04

Are records encrypted?

No. Records are plain text on the hosted store unless you switch on encryption in the app, which encrypts them in your browser with AES-GCM using a key derived from your passphrase. On-chain, only hashes, labels, addresses and version numbers are stored, and those are public.

05

What exactly can be checked?

Every record has a hash, and every anchored version stores the Merkle root of all records at that moment. Anyone can check a record against that root with a short proof, on-chain or in the browser. A passing check shows the record is identical to the anchored one. Whether the record is true is a different question.

06

If I forget a record, is it gone everywhere?

Forgetting removes the record from the hosted store and from the next anchored version. Older versions keep their roots on-chain, and a snapshot already pinned to IPFS may stay available while it remains pinned. Only hashes reach the chain, never the record text.

07

Which network is Pinlo on?

Robinhood Chain (id 4663), an Ethereum-compatible network with ETH as the gas token. The memory contracts and the $PINLO token live there, and the app adds the network to your wallet when you connect.

08

How do I buy $PINLO?

The token is not live yet. When it launches, its contract address is published on the token page and in the site header, and it trades on Robinhood Chain. Always copy the address from this site rather than searching by ticker: other tokens can use the same name.

09

What does it cost to use?

Saving and recalling records on the hosted store costs nothing during the practice period. Anchoring a version is an on-chain transaction paid in ETH gas; the live cost is shown above, calculated from the current gas price and the Chainlink ETH price.

Give your agent a memory.
Start with one record.