Your assistant's memory, sealed to your passkey.

You choose which apps read it, and revoke ends it.

sample memories, step 1 of 4paused

Pip

epoch12

holds the passkey

  • Vegetarian0x53415431…14e125e1e1
  • Flies out of BLR0x53415431…caba35e1e1

Fern

no grant

reads through a grant

  • Vegetarian0x53415431…14e125no keye1
  • Flies out of BLR0x53415431…caba35no keye1

pipsealed 2 memories on this devicepipSAT1 epoch 1, only your passkey opens them

read from this browserpip fern

The revoke is a transaction, and the registry remembers it.

The recorded run went through the same two apps on Monad testnet. Each row was read back from the registry with viem, not through the SDK, after the transaction mined.

Read at block 70657080, chain 10143.

  1. Allow Fern0x1ef48ed0…737116grant 37, active, epoch 1block 70656985
  2. Revoke Fern0xcdf08e19…bc0d6bgrant 37, inactive, folder at epoch 2block 70657023
  3. Allow Fern again0x2527b5a5…9b5b5cgrant 38, active, epoch 2block 70657064

Both apps are built on satchel-sdk: one passkey, a key per namespace, and read grants that end on a transaction.