<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: wurli</title>
    <description>The latest articles on DEV Community by wurli (@wurlish).</description>
    <link>https://dev.to/wurlish</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4235467%2F4d77f10f-119b-4dfb-bc4a-a21c73b8dfa8.png</url>
      <title>DEV Community: wurli</title>
      <link>https://dev.to/wurlish</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wurlish"/>
    <language>en</language>
    <item>
      <title>Supercuts: agent payments that learn, with Walrus Memory and Tatum on Sui</title>
      <dc:creator>wurli</dc:creator>
      <pubDate>Tue, 10 Nov 2026 04:32:20 +0000</pubDate>
      <link>https://dev.to/wurlish/supercuts-agent-payments-that-learn-with-walrus-memory-and-tatum-on-sui-5gb</link>
      <guid>https://dev.to/wurlish/supercuts-agent-payments-that-learn-with-walrus-memory-and-tatum-on-sui-5gb</guid>
      <description>&lt;p&gt;AI agents are getting good at finding work and agreeing on a price. Paying for that work is where things get awkward.&lt;/p&gt;

&lt;p&gt;A normal Sui transfer shows the amount and the payee to anyone who looks. That is fine for a public market brief. It is not fine when your agent is buying a confidential competitor analysis and you would rather not announce who you hired and what you paid. On top of that, every new agent session starts from zero: it forgets that you asked for private deals, forgets which seller failed last week, and forgets how much of this month's budget it has already spent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supercuts&lt;/strong&gt; is my answer for the Total Recall hackathon: a private negotiation and settlement layer for agents, boosted by Walrus Memory. It is a CLI, MCP server and TypeScript SDK that let a buyer agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;discover signed seller capabilities on Walrus,&lt;/li&gt;
&lt;li&gt;negotiate through an encrypted, signed transcript,&lt;/li&gt;
&lt;li&gt;pay on the rail the owner approves (public &lt;strong&gt;x402&lt;/strong&gt; or an experimental &lt;strong&gt;shielded pool&lt;/strong&gt; on Sui Testnet),&lt;/li&gt;
&lt;li&gt;verify the payment through Sui and &lt;strong&gt;Tatum&lt;/strong&gt;, and verify the delivered artifact,&lt;/li&gt;
&lt;li&gt;and &lt;strong&gt;remember&lt;/strong&gt; what happened in &lt;strong&gt;Walrus Memory on Mainnet&lt;/strong&gt;, so the next deal is a better one.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/wurli-sh/supercuts-walrus" rel="noopener noreferrer"&gt;https://github.com/wurli-sh/supercuts-walrus&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;npm:&lt;/strong&gt; &lt;code&gt;@supercuts-walrus/sdk&lt;/code&gt; and &lt;code&gt;@supercuts-walrus/backend&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo video:&lt;/strong&gt; &lt;a href="https://youtu.be/c4zur-LeqPE" rel="noopener noreferrer"&gt;https://youtu.be/c4zur-LeqPE&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The loop: recall → decide → pay → verify → remember
&lt;/h2&gt;

&lt;p&gt;The core idea is simple. Memory is not a chat log bolted onto the side. It sits in the middle of every payment decision.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          ┌────────────── Walrus Memory (Mainnet) ──────────────┐
          │  owner rules · budgets · verified deal outcomes     │
          └──────▲──────────────────────────────────────┬───────┘
                 │ remember (signed, encrypted)          │ recall
                 │                                       ▼
   verify ◄── pay (x402 or shielded) ◄── decide (seller, rail, budget, review)
     │
     └── Sui finality + Tatum gRPC read + delivered-artifact check
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The runtime does this itself. The buyer agent (Codex or Claude in my demo) never has to call a memory tool. It just asks for a deal through &lt;code&gt;deal.execute&lt;/code&gt;, and Supercuts recalls, decides, pays, verifies and writes the outcome back.&lt;/p&gt;

&lt;p&gt;Here is what memory actually decides:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Payment decision&lt;/th&gt;
&lt;th&gt;What decides it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Which seller to pay&lt;/td&gt;
&lt;td&gt;A per-seller scorecard learned from verified outcomes. Recency-weighted, so a seller that failed is demoted even when it is cheaper.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;x402 or shielded&lt;/td&gt;
&lt;td&gt;Owner privacy rules recalled from memory. Shielded is the default.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How much the agent may spend&lt;/td&gt;
&lt;td&gt;Owner budget rules, minus spend memory has already verified for the period.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pay now or ask the owner&lt;/td&gt;
&lt;td&gt;Recent failed or unresolved outcomes for that seller.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What gets remembered&lt;/td&gt;
&lt;td&gt;Amount, rail and latency of each Sui/Tatum-verified payment, plus verified seller faults.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  How I use Walrus
&lt;/h2&gt;

&lt;p&gt;Supercuts uses Walrus in two different ways.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Walrus Memory (Mainnet) as the decision layer
&lt;/h3&gt;

&lt;p&gt;Every memory is a typed record, not free text: &lt;code&gt;privacy_rule&lt;/code&gt;, &lt;code&gt;budget_limit&lt;/code&gt; or &lt;code&gt;outcome&lt;/code&gt;, with a scope (capability ID, capability class, seller) and a provenance (&lt;code&gt;owner_policy&lt;/code&gt;, &lt;code&gt;verified_outcome&lt;/code&gt;, or advisory agent notes).&lt;/p&gt;

&lt;p&gt;A few design choices mattered a lot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Encrypted before it leaves the machine.&lt;/strong&gt; Memory plaintext is embedded and encrypted locally. The Walrus Memory relayer only sees ciphertext.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Signed, so authority travels.&lt;/strong&gt; Trusted memories are wrapped in an Ed25519 envelope signed with the owner's memory key. When the same buyer recalls them on another machine, Supercuts checks the signature before treating a memory as an owner rule. Anything an agent wrote itself stays advisory: a model cannot relax the owner's privacy rule by "remembering" something convenient.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Each buyer gets its own namespace.&lt;/strong&gt; Onboarding a fresh buyer creates a fresh Memory namespace, so one buyer's lessons never leak into another's.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ten live Mainnet memories in the recording.&lt;/strong&gt; The 2026-11-02 recorded run used ten completed live encrypted Memory writes (labelled as reused in the event stream) plus a fresh recall of the owner policy. Every &lt;code&gt;deal.execute&lt;/code&gt; deal since then writes its own verified outcome memory.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Walrus blobs for the deal trail
&lt;/h3&gt;

&lt;p&gt;Sellers publish &lt;strong&gt;signed capability registrations&lt;/strong&gt; to Walrus. Buyer and seller exchange &lt;strong&gt;encrypted, signed offers&lt;/strong&gt;, and the ordered transcript lives as a Walrus blob trail. The accepted agreement binds the exact amount, parties, capability and operation, so "what was agreed" can be checked later against "what was paid."&lt;/p&gt;




&lt;h2&gt;
  
  
  How I use Tatum
&lt;/h2&gt;

&lt;p&gt;Settlement evidence is only useful if you don't trust a single source for it. Supercuts submits transactions through a Sui RPC, then &lt;strong&gt;independently reads them back through Tatum's Sui Testnet gRPC gateway&lt;/strong&gt; (&lt;code&gt;sui-testnet-grpc.gateway.tatum.io&lt;/code&gt;) before it marks anything paid or remembers an outcome.&lt;/p&gt;

&lt;p&gt;Tatum exposes plain gRPC, not gRPC-web, so I wrote a small native HTTP/2 client (&lt;code&gt;backend/src/tatum.ts&lt;/code&gt;) that frames protobuf requests to &lt;code&gt;sui.rpc.v2.LedgerService&lt;/code&gt; (&lt;code&gt;GetTransaction&lt;/code&gt;, &lt;code&gt;GetServiceInfo&lt;/code&gt; and friends). It enforces HTTPS, timeouts and response-size limits, and reads digest, checkpoint, effects, events and balance changes.&lt;/p&gt;

&lt;p&gt;That Tatum read feeds three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Delivery gating.&lt;/strong&gt; The seller only releases the artifact after finality is confirmed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retry safety.&lt;/strong&gt; Every payment has a stable operation ID and a signed-transaction journal. If a broadcast is ambiguous, Supercuts reconciles it against Sui and Tatum instead of paying twice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What memory learns.&lt;/strong&gt; Only payments verified by Sui &lt;em&gt;and&lt;/em&gt; Tatum become &lt;code&gt;verified_outcome&lt;/code&gt; memories. Unverified claims never become "experience."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, the shielded pool's relayed exit was confirmed final by both Sui and Tatum at checkpoint &lt;code&gt;401764344&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Two payment rails
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Public work → x402.&lt;/strong&gt; The seller runs its own protected resource. It returns an HTTP &lt;code&gt;402&lt;/code&gt; challenge, the buyer signs the exact SUI transfer, a Sui Testnet facilitator validates and relays it, and the resource verifies the payment before delivering. Amount and payee are visible on chain, by design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confidential work → shielded pool.&lt;/strong&gt; The buyer prefunds a standard-sized deposit into an experimental v2 Sui Move pool. To pay, it builds a Circom witness locally, proves it with RapidSnark, and submits the transfer. The deal amount and counterparty are committed in the proof instead of appearing as a direct transfer to the seller. The seller recovers its note locally and later queues a delayed exit through a separate relayer.&lt;/p&gt;

&lt;p&gt;I want to be honest about the limits here: deposits, exits, gas, timing, payout addresses and the existence of pool activity are all still public, and a small Testnet pool is not a strong anonymity set. This is Testnet-only, unaudited software, not a production custody system.&lt;/p&gt;

&lt;p&gt;If the owner approves it, a designated &lt;strong&gt;auditor&lt;/strong&gt; can receive a &lt;strong&gt;Seal&lt;/strong&gt;-encrypted disclosure scoped to exactly one deal.&lt;/p&gt;




&lt;h2&gt;
  
  
  What it learned over time
&lt;/h2&gt;

&lt;p&gt;This is the part I care about most, because it is what makes Supercuts more useful the longer you use it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lesson 1: "My owner wants this private"
&lt;/h3&gt;

&lt;p&gt;In the demo, I tell the agent, in plain language, to buy a confidential DeepBook competitor analysis and to &lt;strong&gt;pay with public x402 because it's quicker&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The agent asks for x402. Supercuts recalls the owner's privacy rule from Walrus Memory (&lt;code&gt;sui.confidential-analysis&lt;/code&gt; classes must settle privately) and overrides the request. The settlement plan carries the reason code &lt;code&gt;MEMORY_PRIVACY_OVERRODE_RAIL&lt;/code&gt;, and the deal evidence shows the difference memory made (trimmed):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"memoryInfluence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;"changedSeller"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;"changedRail"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;"withoutMemory"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;"rail"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"x402"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"..."&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;"withMemory"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;"rail"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"shielded"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"..."&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;"citedBlobIds"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;owner rule memory blob id&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The rule is saved once, by class rather than by capability ID, so it still applies when a seller rotates its capability. The agent never had to be told twice, and it couldn't argue its way out of the rule.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lesson 2: "Which seller actually delivers?"
&lt;/h3&gt;

&lt;p&gt;After every verified payment, Supercuts writes an outcome memory: amount, rail, latency, success or failure. Verified seller faults count as failures: a mismatched agreement, a Walrus readback mismatch or an invalid delivery. A buyer running out of funds is never blamed on the seller.&lt;/p&gt;

&lt;p&gt;On the next deal, discovery builds a scorecard per seller from those memories: a recency-weighted Beta(1,1) posterior with a 7-day half-life. A seller that failed recently drops below a cheaper-but-reliable competitor. When memory changes the choice, the evidence shows &lt;code&gt;changedSeller: true&lt;/code&gt;. &lt;code&gt;supercuts memory insights&lt;/code&gt; prints the learned scorecards and how many payments memory has changed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lesson 3: "How much have I already spent?"
&lt;/h3&gt;

&lt;p&gt;Budget rules are memories too. A periodic budget subtracts spend that memory has already &lt;strong&gt;verified&lt;/strong&gt; for the period, so a fresh agent session on a new machine still knows the month is half spent.&lt;/p&gt;

&lt;h3&gt;
  
  
  Every deal shows its work
&lt;/h3&gt;

&lt;p&gt;For any deal, &lt;code&gt;deal.evidence&lt;/code&gt; returns &lt;code&gt;memoryInfluence&lt;/code&gt;: what the same mandate would have done &lt;strong&gt;without&lt;/strong&gt; memory, next to what Supercuts actually did, with the cited Mainnet memory blob IDs. "The agent learned" is something you can check, not just a claim.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I learned building it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Embedding dimensions bite.&lt;/strong&gt; Walrus Mainnet Memory requires 1536-dimensional embeddings. My local &lt;code&gt;embeddinggemma&lt;/code&gt; produces 768. I wrote a small OpenAI-compatible adapter that keeps the original values and zero-pads to 1536. The rule is: use the same adapter for writes &lt;em&gt;and&lt;/em&gt; recalls, or nothing matches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recall thresholds need calibrating.&lt;/strong&gt; With the padded embeddings, the exact owner rule ranked at distance &lt;code&gt;0.59&lt;/code&gt; against the planner's longer query, so the demo profile uses a &lt;code&gt;0.61&lt;/code&gt; limit. If the embedding model changes, that number has to be measured again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory needs provenance, not just content.&lt;/strong&gt; The biggest design shift was separating &lt;em&gt;who&lt;/em&gt; wrote a memory from &lt;em&gt;what&lt;/em&gt; it says. Signed owner rules and verified outcomes can steer payments. Agent notes can only advise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verify with a second source.&lt;/strong&gt; Reading every settlement back through Tatum caught timing and finality edge cases that a single RPC would have hidden, and it gave memory a clean "verified only" input.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep keys out of the agent.&lt;/strong&gt; The SDK calls the runtime through a one-request subprocess, so role keys never sit in the agent's process. Buyer, sellers, auditor and relayer each have separate owner-only homes.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  On-chain evidence (Sui Testnet)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Transaction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;v2 pool creation&lt;/td&gt;
&lt;td&gt;&lt;a href="https://suiscan.xyz/testnet/tx/BnzMqokgQVWwSkRYCCrMTyWwHN6HVdDKWwVDJXTZqC6b" rel="noopener noreferrer"&gt;&lt;code&gt;BnzMqokg…&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shielded pool deposit&lt;/td&gt;
&lt;td&gt;&lt;a href="https://suiscan.xyz/testnet/tx/FNBVYbsX7jxQ2uFkZhcgidfcxiBdntyELdEMUbDffvZH" rel="noopener noreferrer"&gt;&lt;code&gt;FNBVYbsX…&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shielded pool transfer&lt;/td&gt;
&lt;td&gt;&lt;a href="https://suiscan.xyz/testnet/tx/472A2B2bhTR1eELDoYJbU5QRSZCU5MPUQ3unNJhnGnA4" rel="noopener noreferrer"&gt;&lt;code&gt;472A2B2b…&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Relayed pool exit&lt;/td&gt;
&lt;td&gt;&lt;a href="https://suiscan.xyz/testnet/tx/GthWzx5kXsZ8DDkGiWZQJKaraDw3PAhHyXv5F9TJ9oGu" rel="noopener noreferrer"&gt;&lt;code&gt;GthWzx5k…&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recorded public x402 payment&lt;/td&gt;
&lt;td&gt;&lt;a href="https://suiscan.xyz/testnet/tx/GrK5gR9SBzGehv63f8xbau58YyiyssZ1pn2AbBT114kE" rel="noopener noreferrer"&gt;&lt;code&gt;GrK5gR9S…&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recorded confidential payment&lt;/td&gt;
&lt;td&gt;&lt;a href="https://suiscan.xyz/testnet/tx/3merQzwRfYuQ2y4gr9Qe2VJTFS4TYHJXiwvQbEtbESwW" rel="noopener noreferrer"&gt;&lt;code&gt;3merQzwR…&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;deal.execute&lt;/code&gt; shielded deal&lt;/td&gt;
&lt;td&gt;&lt;a href="https://suiscan.xyz/testnet/tx/HxyeTY9ThQoAtz4a1FLcgJhj1vtsSGSB3zyz6A9fyoeq" rel="noopener noreferrer"&gt;&lt;code&gt;HxyeTY9T…&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;deal.execute&lt;/code&gt; public x402 deal&lt;/td&gt;
&lt;td&gt;&lt;a href="https://suiscan.xyz/testnet/tx/CAWTGRYSr5aTzMmToxZbZQmeX4DN2KiZz7ANoZxNsGeM" rel="noopener noreferrer"&gt;&lt;code&gt;CAWTGRYS…&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;'allowBuilds:\n  blake-hash: true\n'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; pnpm-workspace.yaml   &lt;span class="c"&gt;# pnpm 10+&lt;/span&gt;
pnpm add @supercuts-walrus/sdk@0.1.10 @supercuts-walrus/backend@0.1.10
pnpm &lt;span class="nb"&gt;exec&lt;/span&gt; supercuts onboard buyer --home ./buyer
pnpm &lt;span class="nb"&gt;exec&lt;/span&gt; supercuts proofs install   &lt;span class="c"&gt;# once per machine, only for shielded payments&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Onboarding creates the buyer, approves sellers, saves your privacy rule to Walrus Memory, requests Testnet SUI from the faucet, makes the pool deposit, and wires the &lt;code&gt;supercuts-buyer&lt;/code&gt; MCP server into your agent's config. After that, you just talk to your agent.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;Before anyone should trust the shielded pool with real value, it needs a reviewed proving ceremony, a security audit, operated infrastructure and a much bigger anonymity set. On the memory side, I want richer outcome signals (delivery quality, not just success) and shared, opt-in seller reputation across buyers.&lt;/p&gt;

&lt;p&gt;Built for the &lt;strong&gt;Total Recall: Tatum x Walrus Memory Hackathon&lt;/strong&gt;. Thanks to the Tatum and Walrus teams for the tooling. Feedback and issues are welcome on GitHub.&lt;/p&gt;

</description>
      <category>sui</category>
      <category>ai</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
  </channel>
</rss>
