shinjuku-shield

mcp
Guvenlik Denetimi
Uyari
Health Uyari
  • No license — Repository has no license file
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Uyari
  • fs module — File system access in .github/workflows/publish.yml
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Shinjuku Shield: the private x402 facilitator, inside your agent. Shield, pay, and unshield USDC on Solana. Self-custody, Tor built in.

README.md

Shinjuku Shield: private x402 payments on Solana

Solana mainnet x402 facilitator MCP Self-custody Tor

Shinjuku Shield

Shinjuku Shield is a privacy-only x402 payment facilitator on Solana.
An agent pays an x402 endpoint from a balance that it holds itself. The
chain does not show who paid.

  • Privacy-only. We do not offer a cheaper path that is not private.
  • You keep your keys. The wallet makes your keys on your machine. We
    never hold them, and only they can spend your balance.
  • We relay and pay the fees. Our relayer sends your relayed deposits and
    exits and pays their network fees. Our facilitator pays the network fee of
    each payment that it settles.
  • One balance. Your Shinjuku Shielded balance is a set of redeemable
    notes that you hold. The wallet shows it as one number.
  • Outside sellers work. Any Solana x402 exact seller that takes USDC
    gets paid, whichever facilitator it uses (Coinbase CDP, PayAI, or any
    other). The seller changes nothing. Your wallet pays us privately, and we
    pay the seller from our own float. The chain shows Shinjuku paying the
    seller, never your wallet.

Notice, 2026-11-01: Shinjuku updated its on-chain program at 11:50 UTC.
If a payment, deposit or unshield fails since then on version 0.3.131,
restart your AI app (Claude Code, Claude Desktop, Cursor or Codex), or run
npx [email protected] setup again in the terminal. Your balance is safe.
The next release follows such an update by itself.

What your agent gets

The private x402 facilitator, inside your agent.

Shinjuku Shield settles x402 payments from a shielded USDC balance on
Solana: on chain, a shielded payment does not show who paid. This MCP server
is how your agent uses it. It runs on your machine, under caps that only you
set.

  • Self-custody. The server runs on your machine. Your keys never leave
    it. We never run it, and only your keys can spend your balance.
  • Shielded payments. Your agent pays from a shielded balance. Add --tor
    and no server sees your IP.
  • Two lines to set up. npm install -g [email protected], then shinjuku setup. Setup makes the wallet, a private passphrase file, and
    the checked proof tools, and prints the line that adds the wallet to your
    agent host.
  • Add funds from 0.01 USDC. Ask your agent to add funds.
    wallet_add_funds gives a one-time address. Send USDC to it from any
    wallet or exchange, and it becomes private by itself.
  • Caps that only you set. Spending limits are optional; by default there
    is none (only the balance bounds a payment). Setup records the ones you set.
    A tool call can only lower them, never raise them.
  • Find sellers. x402_discover searches public x402 listings
    (Coinbase x402 Bazaar, PayAI, Dexter, and others) on your machine.
  • Pay any Solana exact seller. A seller on Coinbase CDP, PayAI, or any
    other facilitator is paid through Shinjuku: your wallet pays us privately,
    and we pay the seller from our own float. Nothing to fill or set aside.
  • Look before you pay. x402_preview shows the price and whether your
    caps allow it. It pays nothing.
  • No SOL. wallet_add_funds and wallet_shield need only USDC. Our
    facilitator's relayer pays the network fee.
  • Never twice. A retry with the same request_id resumes the same
    payment, deposit, or unshield. It never starts a second one.
  • No RPC, no sign-up, no API key. Reads go through our relay by default.
    Your own RPC always wins if you give one.

This repository holds the setup guide, the examples, the docs, the
changelog, and the published SHA-256 hashes of every wallet file and its proof tools
(Releases). It holds no server code, no circuit code, and no wallet source code.

Docs

  • How it works: x402, our three schemes, the flow
    of one payment, and what runs where.
  • Privacy model: what the chain, the seller, our
    facilitator, the RPC, and the MCP host see, with each limit.
  • Sell with Shinjuku Shielded: get paid by
    Shinjuku Shielded buyers with stock x402 middleware, and get listed.
  • Get paid by any AI agent or app: not offered yet.
  • Proof: live mainnet transactions, and what each one shows
    and hides.
  • FAQ: custody, cost, networks, Tor, recovery, and audits.
  • Changelog: what changed in each release. The first
    changelog of the wallet file, up to 08a4b56f (npm 0.3.8):
    changelog-to-0.3.8.md.

Release 0.3.131

Stable version, pinned 2026-10-30. A self-custody wallet for AI agents. It
pays any x402 endpoint from a shielded balance, so the chain does not show
which wallet paid. Two commands set it up. Your agent does the rest from
plain requests.

Pinned version [email protected]
Wallet release 3c8b302d (its hash)
Network Solana, USDC

Get started

You need Node.js 22.21 or newer, or Node.js 24 (node --version shows
which one your node command runs). Tor is optional: run it if
you also want to hide your IP address.

  1. Set up the wallet. In a terminal, type these two lines as they are:

    npm install -g [email protected]
    shinjuku setup
    

    The first line installs the shinjuku command for every folder and every
    new terminal window (-g means global). Or, without installing anything:
    npx -y [email protected] setup. On a Windows computer with more than one
    account, shinjuku can say "'shinjuku' is not recognized": Node.js puts
    npm's folder on the PATH of the account that installed it only. Then type npx -y [email protected] in
    place of shinjuku in the lines below. The candidate 0.3.192 adds npm's
    folder to your PATH by itself.

    Setup asks whether to use Tor and for your own wallet address (optional;
    Enter keeps the default or skips).
    It makes the wallet on your machine and a private passphrase file, and
    downloads every proof file it needs (about 191 MB, checked by hash).

  2. Add it to your agent app. For Claude Code, run
    shinjuku setup --add-to claude-code once. For Claude Desktop, Cursor and
    other apps, setup prints the config at the end: paste it once (in Claude
    Desktop, Settings > Developer > Edit Config opens its settings file). Then
    restart the app once. On Windows, Claude Desktop keeps running when you close
    its window: right-click its icon by the clock (it may be under the ^ arrow
    there) and choose Exit, then open it again. On a Mac, press Command+Q. Your
    agent app then starts the wallet by itself.

    With the candidate 0.3.192 (npx -y [email protected] setup), setup also adds
    the wallet for you: --add-to codex for the ChatGPT desktop app (its Codex
    side) and Codex CLI, --add-to claude-desktop for Claude Desktop, also
    the Microsoft Store version, --add-to grok for Grok Build, --add-to hermes
    for Hermes Agent, --add-to opencode for OpenCode, --add-to copilot for the
    GitHub Copilot CLI, --add-to openclaw for OpenClaw, and --add-to goose for Goose. Setup then
    says how to restart and check that app. In the ChatGPT desktop app, use its Codex side: ChatGPT's own chat
    cannot start a program on your computer.

  3. Add money. Ask your agent "Add 1 USDC to my private balance." It gives
    you a one-time address. Send USDC on Solana to it from any wallet or
    exchange. You need no SOL. A few minutes after it arrives, the money is
    private.

  4. Use it. Ask your agent to pay a URL, find a paid API, send money out,
    or ask an AI model. Every feature below works from a plain request.

In a terminal, shinjuku help lists every command.

Features

Each feature here passed a live run on the published 0.3.131 package, on
production, with real USDC: the check of the stable version, from
2026-10-30 23:51 UTC to 2026-10-31 00:33 UTC, in Claude Code and in a
terminal. No other agent app was run on 0.3.131. One feature has no run
of its own on 0.3.131: one question with shinjuku infer.

Add money

  • Add funds (wallet_add_funds, shinjuku add-funds). A new one-time
    address for each deposit, from 0.01 USDC. Send from any wallet or exchange;
    no SOL needed. The wallet makes it private by itself after it lands, even
    if your agent app closed. Ask: "Add 1 USDC to my private balance."
    Terminal: shinjuku add-funds --route exchange --amount 1
  • Make public USDC private (wallet_shield). USDC that sits on the
    wallet's own public address moves into the shielded balance. The
    facilitator pays the network fee. Ask: "Make the USDC on my address
    private."
  • Sell a token (wallet_transfer_token, wallet_transfer_token_status; in
    0.3.131 to 0.3.180 only: the candidates from 0.3.181 remove this tool).
    The wallet sells your token for USDC from your public address (anyone can
    see that sale), then sends the USDC privately in one payment. The receiver
    gets USDC, not the token. Ask: "Sell my JUP for USDC and send it privately
    to my main wallet."

Pay

  • Pay any x402 endpoint (x402_pay, shinjuku pay, shinjuku curl).
    Pays an x402 URL from the shielded balance and returns the answer. The
    seller gets paid as usual; the chain does not show which wallet paid. The
    price and the fee show in the answer. Ask: "Pay for this endpoint and show
    me what it returns: "
  • Price preview (x402_preview). Shows what a URL costs before you pay.
    Nothing is paid or signed. Ask: "How much does this URL cost?"
  • Find paid APIs (x402_discover). Searches public x402 endpoints for a
    job. Your search words stay on your machine; nothing is paid. Ask: "Find a
    paid API for Brazil inflation data."
  • Automatic refunds (x402_pay). If the seller fails before it takes the
    money, the full amount comes back to the private balance by itself. If the
    seller took the money and gave nothing, the receipt says so with the
    seller's transaction. Nothing to ask: the receipts show each refund and its
    transaction.
  • Slow sellers, never paid twice (x402_pay). When a seller is slow, the
    wallet answers early and keeps waiting. Asking again with the same request
    continues the same payment. It never pays twice. Ask again with the same
    request when the agent tells you the seller is still working.
  • Images and files (x402_pay). A paid answer that is an image or a file
    is saved in the wallet folder, with its path and hash. Ask: "Buy a QR code
    for this text from ."
  • Cancel (wallet_cancel, shinjuku cancel). Closes a payment that can
    no longer settle, so its reserved money comes back. A finished payment
    cannot be taken back, and the wallet says so. Ask: "Cancel that payment."

Send money out

  • Send to an address (wallet_unshield, shinjuku unshield). Sends some
    or all of the private balance to any Solana wallet as plain USDC. The
    facilitator pays the network fee. Ask: "Send my whole private balance to my
    main wallet." Terminal: shinjuku unshield --amount all --to <address>
  • Send all of it (wallet_unshield, shinjuku unshield --amount all). A
    balance from several deposits is readied by itself when you send all of it.
    You do nothing extra. Ask: "Send all of it."
  • Spend a received payment (wallet_unshield). A wallet that only
    received private payments can send them out directly, with no extra step.
    Ask: "Send what I received to
    ."

Your wallet

  • Balance (wallet_balance, shinjuku balance). One number: what you can
    spend. It also shows any public USDC on the wallet's own address and any
    money still on its way. Ask: "What is my private balance?"
  • Receipts (wallet_receipts). Every payment, refund, deposit and send,
    newest first, with the seller, the price, the fee and the transactions.
    Ask: "Show my receipts from today. Did I get my money back on failed
    payments?"
  • Spending limits (--max-payment, --max-session, shinjuku limits).
    Optional limits per payment and per 24 hours. A payment over a limit is
    refused before anything is paid, and the answer says how to change the
    limit. Set them in setup or in your host's MCP entry, for example
    --max-payment 0.05.
  • Version pin and update notice (npx ... [email protected] mcp).
    Your host runs the exact version it names. When a new release is ready,
    the wallet tells you to restart. Nothing to ask.

Private AI

  • Ask an AI model (inference_chat). Your agent asks an AI model and pays
    for the answer from the shielded balance. The chain does not show which
    wallet paid. Ask: "Ask a private AI model: what is the capital of France?"
  • Terminal chat (shinjuku chat). A private AI chat in your terminal. The
    conversation stays in memory only and is gone when you exit. Terminal:
    shinjuku chat, then /cost and /exit
  • One question (shinjuku infer). One question, one paid answer, no setup
    flags. Terminal: shinjuku infer "Say hello" or
    echo "Say hello" | shinjuku infer -
  • Private AI address for your apps (shinjuku infer start,
    inference_server). A local OpenAI-compatible address
    (http://127.0.0.1:11402/v1) with an API key. Any app that speaks the
    OpenAI chat API, streaming included, gets private paid answers. It runs in
    the background after the terminal closes, but not after the computer
    restarts: then run shinjuku infer start again (the API key
    stays the same). Ask: "Start my local private AI address." Terminal: shinjuku infer start, shinjuku infer status,
    shinjuku infer stop

Privacy and setup

  • Tor (setup --tor, --tor, --no-tor). With Tor, every request goes
    through Tor and reaches the facilitator through its onion service, so no
    server sees your IP address. After a Tor setup, every command uses Tor by
    itself. Run Tor with HTTPTunnelPort 127.0.0.1:9080, then setup --tor.
  • Self-custody (shinjuku setup, backup-export). The keys are made and
    kept on your machine. Only your keys move your balance. The facilitator
    settles and pays network fees; only your keys can spend your balance. Back up after
    setup: shinjuku help backup-export
  • The terminal command
    (setup offers to install it). Every
    wallet action from a terminal: setup, add-funds, balance, pay, unshield,
    chat, infer and more. Terminal: shinjuku help

Speed

The time from "pay" to the seller's data, for the first payment to a seller
the wallet never paid before (a fresh wallet process, production,
2026-10-23, version 0.3.86):

Route First seller Second seller
Direct 4.85 s (payai.agentstools.dev) 11.31 s
Over Tor 9.94 s (werner.ddns.net) 18.14 s

Fixed since 0.3.86

These seven issues of the older stable version 0.3.86 are fixed in 0.3.131.
Each fix passed a live run when it came out (0.3.87 to 0.3.91).

  1. When a seller fails before it takes the money, the answer starts with
    "Paid". The money is not taken and comes back by itself.
  2. The terminal send prints one internal line that starts with
    SELLER_STORE.
  3. shinjuku chat can print raw Tor lines while Tor is slow.
  4. When the spending limit comes from the host's MCP entry, the refusal names
    setup as the place to change it.
  5. Before a send that needs the balance readied first, the agent may not
    tell you it takes about 2 minutes.
  6. In a terminal, balance, infer and unshield print internal Tor, RPC and
    history lines.
  7. A plain shinjuku balance right after a deposit can show no number.
    shinjuku balance --refresh shows it.

Payments to outside sellers show the price and the seller on chain as any
x402 payment does; what the chain does not show is which wallet paid. Every
release and its changes: CHANGELOG.md.

Talk to it in plain words

Ask your agent the way you would ask a person:

You say Your agent calls
"what is my balance" wallet_balance
"add 0.50 USDC to my shielded balance" wallet_add_funds
"shield 5 USDC" wallet_shield
"find a seller of satellite images" x402_discover
"pay this URL" x402_preview, then x402_pay
"ask an AI model privately" inference_chat
"send 2 USDC privately to
"
wallet_unshield
"sell my JUP and send the value privately to
"
wallet_transfer_token (0.3.131 to 0.3.180; not in 0.3.181 and later)

Each answer tells the agent the exact next call. The wallet reads the chain
and writes an encrypted backup by itself, so you never run a command for
upkeep.

Tools

SETUP

On a machine with no wallet, the server starts in setup mode.

Tool What it does
shinjuku_setup Asks you to confirm in your MCP client that it may create a Shinjuku Shielded wallet on this machine, and shows the caps. Then it runs the setup and switches the same server to the wallet tools. It never asks for a secret. A client that cannot ask is told to run the setup in a terminal.
wallet_status Says whether the wallet is set up, and what to do next.

In setup mode, every money tool answers wallet_not_set_up and does
nothing.

FUND

Tool What it does
wallet_add_funds Gives a new one-time Solana address of this wallet and a solana: pay link. Send USDC to it from any wallet or exchange, from 0.01 USDC. You need no SOL. A few minutes after the USDC arrives, it becomes private by itself while the MCP server runs. One round takes up to 5 USDC; a larger amount goes in by rounds. Use each address for one payer. The call itself moves no money.
wallet_shield Moves USDC that is already on the wallet's own Solana key into your shielded balance: any amount from 0.01 USDC, while the shielded balance stays at most 5 USDC. It is a public step: the chain shows the wallet's own key. It is on with --proof-tools. --no-shield turns it off. Funding takes minutes: the first call starts it and returns a stage. Call again with the same request_id to see the stage. It never starts a second deposit. When the deposit lands, the wallet reads it from the chain and writes an encrypted backup. The wallet's own key needs the USDC and no SOL: our facilitator's relayer pays the network fee, and you pay the shield cost.

PAY

Tool What it does
x402_discover Searches public x402 listings (Coinbase x402 Bazaar, PayAI, Dexter, and others) on your machine and returns the sellers that match. Pays nothing. The first call takes about 15 s.
x402_preview One unpaid request. Returns the seller's price, the scheme, and whether your caps allow it. Pays nothing. For a standard exact seller it adds feeAtomic (our fee) and totalAtomic (price plus fee, what leaves your balance). A seller that lists several networks is priced from its Solana offer.
x402_pay Pays the URL (if it asks for payment) and returns the answer. A URL that does not answer 402 is fetched once and nothing is paid. An image answer (image bytes, or JSON image_base64) comes back as an MCP image block, and the file is saved. A payment that landed, from a seller that gives no answer, closes as paid. If a standard exact seller does not take our payment, the answer is p03_float_refund_pending: price and fee come back to your balance by themselves within about 7 minutes. Alias: fetch_paid.
inference_chat One AI answer from usePod's x402 chat endpoint, paid privately from your shielded balance. A short qwen3-8-flash answer costs about 0.0011 USDC: the provider price plus the 0.001 USDC Shinjuku fee. It needs --tor or a proxy.

UNSHIELD

Tool What it does
wallet_unshield Sends shielded USDC to a public Solana address. It is on with --exit-proof-tools and --profile. Our facilitator pays every network fee. The same request_id never unshields twice. An address that you named with --unshield-to is sent at once. Any other address is sent only after you confirm it in your MCP client: "Send X USDC from your shielded balance to
?". A decline, or no answer in 5 minutes, sends nothing. A client that cannot ask is refused, so a prompt injection cannot pick an address by itself. The wallet's own key is refused: it made the deposits, so an exit there would link them.

WALLET

Tool What it does
wallet_balance ONE balance (balanceAtomic, what x402_pay can spend) and UNSHIELDED (unshieldedAtomic, plain USDC on the wallet's own Solana key), with ownAddress and status ("current" when the balance is read). breakdown names what the one balance holds: shieldedAtomic (what wallet_unshield can send), refundsInFlightAtomic (a Shinjuku refund on its way back), and setAsideAtomic (value in pockets of an older version). A stale balance is read from the chain first. UNSHIELDED is one network read; if it fails, that line is empty and says why.
wallet_receipts Your most recent paid receipts: {ok, count, total, facilitatorNote, receipts}. Each receipt has kind (x402, inference, or a move), the host (never the full URL), amountAtomic, and transaction.
wallet_cancel Closes one unfinished payment (its reserved balance comes back), the pieces of a private send that did not start, or an add-funds link that no USDC reached.

RECEIVE AND TRADE

Tool What it does
wallet_receive_shielded Gives a new one-time private (shielded) address of this wallet, for a Shinjuku Shielded payer in the same pool. It stores, signs, and moves nothing. A wallet that never shielded can spend what it receives only after one shield; the answer says so in notice.
wallet_transfer_token In 0.3.131 to 0.3.180 only (the candidates from 0.3.181 remove it). Sells a Solana token for USDC (on Jupiter) from the wallet's public address (anyone can see that sale), makes the USDC private, and sends it privately to an address. The address gets USDC, not the token. It takes minutes. The stages are selling, shielding, sending, and done.
wallet_transfer_token_status In 0.3.131 to 0.3.180 only. Shows the stage of one transfer by request_id, or the list of transfers.

wallet_shield and wallet_unshield always appear in the tool list. When
one is off, it answers "error": "mcp_tool_disabled" and tells the agent
what to ask you.

The tool list shows 12 of the tools above: wallet_receive_shielded is not
in the list from 0.3.54 (it comes back with private escrow deals), but it
still answers when an agent calls it by name. Some older tools are not in
the list either, and they also answer by name:
wallet_shield_from_elsewhere, wallet_pay_me, wallet_pay_me_status,
wallet_unshield_cancel, wallet_move_status, and inference_models.

What it pays:

  • shielded-exact, from your shielded balance, whenever the seller
    offers it.
  • Standard Solana exact, through Shinjuku (float pay). For a seller on
    any facilitator (Coinbase CDP, PayAI, or any other), x402_pay pays us
    privately from your shielded balance: the seller's price plus a flat fee
    (feeAtomic, 0.001 USDC on 2026-10-22). We pay the seller at once from our
    own shared float. The chain shows Shinjuku paying the seller, never your
    wallet. max_payment_atomic must cover price plus fee. The largest price
    that one request can pay is largestAtomic in
    GET https://pay.shinjukustaition.com/api/x402/float/config (10 USDC on
    2026-10-22).
  • A retry with the same request_id never pays twice.

Hidden amounts (scheme confidential, the V0b vault) are retired: the V0b
program was closed on chain on 2026-10-11.

Value that an older version put in pockets still counts in the one balance.
When the server has --proof-tools, --exit-proof-tools, and --profile,
it returns that value to the shielded balance by itself while it is idle.
shinjuku pocket reshield does the same by hand.

A balance from several deposits: one payment can spend only a few of them
at once. The server gathers them into one by itself (a private payment to
itself; nothing leaves the shielded balance, and our facilitator pays the
network fee). When no single deposit covers a price yet, x402_pay says
so, the gathering starts within about a minute, and the answer says when
to pay again.

Privacy modes

Default --tor
On chain A shielded payment does not show who paid. The same.
Your IP Payments go to pay.shinjukustaition.com, with no CDN in the path. Our server sees your IP. It keeps no access logs. Hidden from everyone, us included.
The seller Sees your IP. Does not see your IP.
Speed Faster. About 1-2 s slower per request.
Needs Nothing extra. Tor with HTTPTunnelPort 127.0.0.1:9080 IsolateDestAddr in torrc.
When a path is slow - The wallet races our onion addresses and keeps the first that answers. A facilitator onion that gives no answer in 15 s brings in two spare onions. A history request with no answer moves to the next history onion, and a history source that is silent for 60 s ends with a plain error instead of a long wait. A stalled Tor circuit is replaced. A facilitator request never falls back to our clearnet address.

Setup

You need Node.js 22.21 or later (or Node.js 24 or later), on Windows or Linux. macOS is not supported
yet.

The stable version is 0.3.131 (wallet release 3c8b302d, pinned 2026-10-30).
Every command here names it. Setup prints host lines that name this exact version.
It uses npm tag latest. A candidate, 0.3.192, is out for testing (npm tag next, 2026-11-08).
Status and the changelog list its changes.

A later stable version gets its own row in the
Releases table: run its setup once and
put its version in your host's config. Your wallet, its address, and its balance stay the same.

1. Run the setup in a terminal

npx -y [email protected] setup

It asks whether to use Tor and for your own wallet address (optional: your
agent can then send money back to you without asking for it). When the
shinjuku command is not installed yet, it offers to install it. Enter keeps
the default or skips. At the end it offers
to add funds (Enter skips). --yes asks nothing. --add-to claude-code (or
claude-desktop, cursor) also adds the server to that host's config; if
Claude Code already has a wallet entry for another wallet folder, setup asks
before it replaces it. In our 0.3.131 runs (2026-10-30), setup took about 17 s
on a fast line and about 80 s over Tor, with the setup-file download of about
191 MB. At the end it prints a summary, for example:

Shinjuku Shield is set up.
  limits       no limit per payment, no limit in any 24 hours, no limit for the life of the wallet
  config       <home>/config.json
  passphrase   <home>/passphrase.txt (a new random passphrase; only you can read the file; it is never printed)
  setup files  <home>/proof-tools/a9af32df (30 files downloaded, every hash checked)
  balance      prepared during setup: your first balance after a deposit shows sooner
  wallet       created
  recovery     <home>/recovery-<time>.txt

Setup writes to ~/.carbon-shielded-wallet (or SHIELDED_WALLET_HOME):

  • The wallet, and a recovery file with the seed and the key. Copy the
    recovery file to two offline places, then delete it from this machine.
  • passphrase.txt: a new random passphrase, readable by you alone. It is
    never printed, and no tool takes or returns it. Keep it: the wallet file
    opens only with it.
  • The proof tools. Setup checks every file against the set that this wallet
    release pins.
  • config.json: the caps, the paths, and Tor. With it, mcp needs no
    flags. A flag on the command line still wins.

Spending limits are optional and off by default: with none, only the balance
bounds a payment. To set them, give --max-payment, --max-session, or
--max-cumulative, in USDC (0.05 = 5 cents). A setup rerun lifts the
old default caps (0.05 / 1 / 20 USDC) of earlier versions. --prefer-tor
records Tor (see Privacy modes).

You can run setup again at any time. It never changes an existing wallet,
and it checks every proof-tool file again.

2. Add the server to your agent host

If you gave --add-to, this step is done. For Claude Code, the simplest way is
shinjuku setup --add-to claude-code (it runs the line below for you). Setup also
prints these lines. Add the wallet once: one entry named shinjuku.

Claude Code:

claude mcp add --scope user shinjuku -- npx -y --no-audit --no-fund [email protected] mcp

--no-audit --no-fund stop npx from asking npm's audit and funding
services when it starts a new version. Once, that request held the start for
5 minutes.

On native Windows, the line that setup prints puts cmd /c before npx.
With a wallet folder that is not the default, it adds
-e SHIELDED_WALLET_HOME=<home> (or an "env" block in JSON).

Claude Desktop (claude_desktop_config.json), Cursor (~/.cursor/mcp.json),
and other JSON-config hosts:

{
  "mcpServers": {
    "shinjuku": {
      "command": "npx",
      "args": ["-y", "--no-audit", "--no-fund", "[email protected]", "mcp"]
    }
  }
}

Or: start the server first and accept the setup

You can also add the server first, with no wallet on the machine. Then the
server starts in setup mode. Ask your agent "what is my balance". Your MCP
client asks you to confirm: create a Shinjuku Shielded wallet on this
machine. Accept, and the setup runs (with the proof-tool download of about
191 MB). Then the same server switches to the wallet tools. You do not
restart it. A client that cannot ask is told to run the setup in a
terminal.

In a terminal, shinjuku mcp asks "Set up Shinjuku Shield now? (y/n)".

3. Add funds

The wallet starts empty. Ask your agent "Add 0.50 USDC to my shielded
balance". It calls wallet_add_funds and gives a one-time address. Send
that USDC on Solana from any wallet or exchange. Amounts from 0.01 USDC
work, and you need no SOL. The USDC becomes private by itself while the MCP
server runs: our relayer pays every fee.

From an exchange, in a terminal, whole USDC only:

shinjuku add-funds --route exchange --amount 2

It prints a one-time address. Withdraw exactly that amount of USDC (Solana
SPL) from the exchange to it, and it shields the USDC by itself. --amount
is a whole number of USDC (2 = 2 USDC).

USDC that is already on the wallet's own address (ownAddress in
wallet_balance) goes in with wallet_shield. The steps are in
First 10 minutes.

Verify a release

The wallet is one file, shinjuku-wallet.mjs. The same file, with the same
SHA-256, is in three places: the npm package shinjuku-shield, our website,
and the Releases table of this repository. The steps below check
the stable version 0.3.131 (wallet release 3c8b302d). Its SHA-256 in the
Releases table is
3c8b302d8f0616edc98cc277f1b41b5cc47d121efb77a7b1cba3214ab60fb8b8.

  1. Install the npm package into a new, empty folder. Type each line alone:

    mkdir shinjuku-check
    cd shinjuku-check
    npm init -y
    npm install --ignore-scripts [email protected]
    
  2. The npm copy. Hash the wallet file inside the installed package. The hash
    must equal the SHA-256 above.

    Linux: sha256sum node_modules/shinjuku-shield/shinjuku-wallet.mjs

    macOS: shasum -a 256 node_modules/shinjuku-shield/shinjuku-wallet.mjs

    Windows (PowerShell):

    (Get-FileHash .\node_modules\shinjuku-shield\shinjuku-wallet.mjs -Algorithm SHA256).Hash
    

    PowerShell prints the hash in capital letters; the letters are the same.

  3. The npm signatures. In the same folder:

    npm audit signatures
    

    It checks the registry signatures and the provenance attestations of the
    installed package. It must print "1 package has a verified registry
    signature" and "1 package has a verified attestation". It does not print
    who built the package.

  4. Who built it. The provenance attestation is a statement, signed through
    Sigstore during the build, of where the package was built. To read it, open
    https://www.npmjs.com/package/shinjuku-shield/v/0.3.131, select the green
    check mark next to the version, then "View more details". "Source Commit"
    must be a commit of ShinjukuStaition/shinjuku-shield, and "Build File"
    must be .github/workflows/publish.yml.

  5. The website copy. Download the file and check it. Go on only when the
    check prints OK:

    curl -fsSLO https://shinjukustaition.com/wallet/3c8b302d/shinjuku-wallet.mjs
    echo "3c8b302d8f0616edc98cc277f1b41b5cc47d121efb77a7b1cba3214ab60fb8b8  shinjuku-wallet.mjs" | sha256sum -c -
    

    On macOS, end the second line with shasum -a 256 -c - in place of
    sha256sum -c -.

    On Windows (PowerShell), type curl.exe in place of curl, then:

    if ((Get-FileHash .\shinjuku-wallet.mjs -Algorithm SHA256).Hash -eq "3c8b302d8f0616edc98cc277f1b41b5cc47d121efb77a7b1cba3214ab60fb8b8") { "OK" } else { "MISMATCH" }
    

    The file and its hash are also in section 7b of
    https://shinjukustaition.com/skill.md. To run the file itself, replace
    shinjuku with node /abs/path/shinjuku-wallet.mjs in the commands.

What these steps show: the npm copy, the website copy and the Releases table
have the same hash; npm's signatures on the package are valid; and the
provenance names the repository and workflow that built the package. They do
not show the wallet's source code, which is not public. As npm says,
provenance does not guarantee that a package has no malicious code.

Advanced: flags instead of config.json

mcp reads config.json only when you give no --pool and no --wallet.
To give the flags yourself (for example, for a wallet that you made with
init before 0.2.0):

claude mcp add --scope user shinjuku -- npx -y --no-audit --no-fund [email protected] mcp \
  --max-payment 0.05 --max-session 0.2 --tor \
  --pool <pool> \
  --program 8PYPw3FSFTMbvSneXdcoH6jNoN4VD23nHwPY2A2riUy1 \
  --memo-service https://pay.shinjukustaition.com \
  --proof-tools /abs/path/shinjuku-proof-tools/proof-tools.json \
  --exit-proof-tools /abs/path/shinjuku-proof-tools/exit-proof-tools.json \
  --profile /abs/path/shinjuku-proof-tools/public-profile.json \
  --passphrase-file /abs/path/passphrase.txt

With --pool, --program and --memo-service are required. Setup writes the pool, the program, and the
facilitator into config.json: <pool> is the pool in your config.json.
shinjuku help mcp prints every flag.

Use absolute paths: a host starts the server from its own folder. On Windows,
write C:/Users/you/.... --proof-tools turns wallet_shield on.
--exit-proof-tools and --profile turn wallet_unshield on.

For an older wallet, you can also run setup once with
SHIELDED_WALLET_HOME set to your wallet folder and --passphrase-file
set to your passphrase file. It keeps your wallet and writes config.json
beside it.

A send to a new address needs a host that supports MCP elicitation (it shows
you the confirmation). With a host that does not, name each address with
--unshield-to.

Use your private AI from your own code

Your wallet can run a private AI address on your computer. Any program that
talks to OpenAI can use it. Each answer is paid from your private balance.
The address always runs through Tor, so the AI company does not see your IP
address.

These steps ran on the candidate 0.3.179 on a new Windows account, one short
question each, with curl, TypeScript, Python and LangChain.

1. Start the address

npx -y [email protected] infer start

It prints the address, an API key and the model. You need the first two:

base_url http://127.0.0.1:11402/v1
api key  <your key: 48 letters and numbers>
model    qwen3-8-flash (others: ...)

The address keeps running in the background. It stops when your computer
restarts: then run the line again (the key stays the same). To stop it:
npx -y [email protected] infer stop.

2. Put your key where your program can find it

In the same window (Windows, Command Prompt):

set OPENAI_API_KEY=<your key from step 1>

On a Mac or Linux: export OPENAI_API_KEY=<your key from step 1>. This lasts
until you close the window. Keep the key to yourself: a program on your
computer that has it can spend from your balance.

3a. curl (no install needed on Windows 10 or 11)

In Command Prompt (one line; copy it as it is):

curl http://127.0.0.1:11402/v1/chat/completions -H "Authorization: Bearer %OPENAI_API_KEY%" -H "Content-Type: application/json" -d "{\"model\":\"qwen3-8-flash\",\"max_tokens\":256,\"messages\":[{\"role\":\"user\",\"content\":\"What is the capital of Japan?\"}]}"

The answer is the text after "content":. The reply's "paid_atomic" is what
you paid, in millionths of a USDC (3118 = 0.003118 USDC).

3b. TypeScript or JavaScript (needs Node.js)

Node.js is already on your computer if the wallet runs. In a new folder:

npm install openai tsx

Save this as ask.ts (in Notepad: File, Save as, "Save as type: All files",
file name ask.ts):

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "http://127.0.0.1:11402/v1",
  apiKey: process.env.OPENAI_API_KEY,
});

async function main() {
  const answer = await client.chat.completions.create({
    model: "qwen3-8-flash",
    max_tokens: 256,
    messages: [{ role: "user", content: "What is the capital of Japan?" }],
  });
  console.log(answer.choices[0].message.content);
}

main();

Run it: npx tsx ask.ts

3c. Python (needs Python 3)

If python --version says "Python was not found" or opens the Microsoft
Store, install Python from https://www.python.org/downloads/ and tick
"Add python.exe to PATH" in the installer. Then close the window and open a
new one (the old window does not see the new Python), go back to your folder
and set your key again (step 2).

pip install openai

pip can print yellow "not on PATH" warnings and a note about a newer pip.
They do no harm. Save this as ask.py:

import os
from openai import OpenAI

client = OpenAI(
    base_url="http://127.0.0.1:11402/v1",
    api_key=os.environ["OPENAI_API_KEY"],
)

answer = client.chat.completions.create(
    model="qwen3-8-flash",
    max_tokens=256,
    messages=[{"role": "user", "content": "What is the capital of Japan?"}],
)
print(answer.choices[0].message.content)

Run it: python ask.py

3d. LangChain (Python)

Do 3c first, then:

pip install langchain-openai

Save this as ask_langchain.py:

import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="http://127.0.0.1:11402/v1",
    api_key=os.environ["OPENAI_API_KEY"],
    model="qwen3-8-flash",
    max_tokens=256,
)
print(llm.invoke("What is the capital of Japan?").content)

Run it: python ask_langchain.py

What it costs

Each answer is paid before it runs, for the longest reply you allow
(max_tokens). A part you do not use is not paid back, so a small
max_tokens keeps each answer cheap. 256 is the smallest: a smaller value is
raised to 256, so the answer is not empty. A request with no max_tokens pays
for 4096. infer start says the most it pays for one answer and for one run.

Examples

examples/ has complete configs and a walkthrough:

  • Claude Code: the setup command, the
    claude mcp add command, Tor, each flag explained, and how to check it
    works.
  • Claude Desktop and
    Cursor: complete JSON configs.
  • Hermes Agent: the config.yaml entry.
  • Vercel AI SDK: the server's tools in
    generateText through @ai-sdk/mcp, with no other package.
  • Solana Agent Kit:
    npm solana-agent-kit-plugin-shinjuku, the wallet as Solana Agent Kit v2
    actions.
  • First 10 minutes: set it up, add
    the server, add funds, pay, send, and check the balance.
  • Plain requests: 13 requests, the tool each one
    calls, and the shape of the answer.

Caps and flags

After setup, config.json holds the caps and the paths. You can add any of
these flags to the mcp command. A flag wins over config.json.

Flag
--max-payment <usdc> Optional. The most one payment may cost, in USDC (0.05 = 5 cents). Setup records it. Default: no limit.
--max-session <usdc> Optional. The most this wallet may pay in any 24 hours, from every MCP process together. When you set both, it must be at least --max-payment. Setup records it. Default: no limit.
--max-per-host-day <usdc> Optional. The most one seller host may receive in 24 hours, in USDC.
--allow-host <host> Optional, repeatable. Pay only these seller hosts.
--no-shield Optional. Turns wallet_shield off. It is on with --proof-tools.
--max-shield <usdc> Optional. The most one shield call may move, and the most this wallet may shield in any 24 hours, in USDC. Without it, no cap beyond the balance.
--allow-shield Accepted for older configs. wallet_shield is on without it.
--exit-proof-tools <file>, --profile <file> Optional. Turn wallet_unshield on (with --proof-tools).
--unshield-to <address> Optional, repeatable. These addresses receive with no confirmation. Any other address needs your confirmation in the MCP client. The wallet's own key is refused: the server does not start when you name it here.
--ready-pockets <0-5> Accepted for older configs and ignored. Standard exact sellers are paid through Shinjuku, and the wallet fills no pocket.
--no-auto-pockets Accepted for older configs. It also stops the idle return of old pockets to the shielded balance.
--max-unshield <usdc> Optional. The most one unshield call may move, and the most this wallet may unshield in any 24 hours, in USDC. Without it, a send you confirm can move the whole shielded balance.
--no-tor Optional. This run does not use the Tor that setup recorded.
--tor Optional. Every request goes through Tor; our facilitator is reached over its onion service. Needs Tor with HTTPTunnelPort 127.0.0.1:9080 in torrc. See Privacy modes.
--rpc-file <file> Optional. Your own Solana RPC URL. Without it, reads go to our relay, which sees which addresses the wallet reads.

The passphrase comes from --passphrase-file or SHIELDED_WALLET_PASSPHRASE
at start, never from a tool call. A refusal is a normal answer
({"ok": false, "error", "detail", "next"}); the agent does what next
says. A cap refusal tells the agent to ask you: only you set the caps.

An unshield is your own money, so it does not count against the payment
budget of the wallet file (init --max-payment, --max-cumulative).
Payments to sellers still count. To show, change, or remove those
wallet-file caps, run shinjuku limits (none removes a cap). A
refusal by one of them tells the agent to ask you for this.

Upkeep is automatic. After a deposit lands, and before a payment or unshield
when the local balance is stale, the server reads the chain itself. By
default it reads the pool history through our facilitator's https history
proxy: a new wallet is ready in about 60 s. After
each shield and unshield, the wallet writes an encrypted backup to
<SHIELDED_WALLET_HOME>/auto-backups/<pool>/. It keeps the newest 5
complete, verified backups. They are on the same disk as the wallet: copy
one to another place.

What others can see

  • The seller sees your request, the price, the time, and your IP unless you
    use --tor.
  • Your agent host and its model provider see every URL, body, price, paid
    answer, amount, and unshield address the agent handles. A local model
    removes that observer.
  • Your MCP client app (Claude Code, Codex, Claude Desktop, Cursor, ...) answers the
    confirmation of a send, not the model. So a prompt-injected agent cannot
    approve a send. But the wallet trusts the client app to show the dialog to
    you: a malicious or modified client app could answer "accept" by itself.
    For a strict setup, name your addresses with --unshield-to and use a
    client without elicitation. Then any other address is refused.
  • Our facilitator processes your payment. It keeps no access logs.
  • On chain, a shielded-exact payment does not show who paid. A float pay
    payment is a pool payment to us (the payer hidden), then a normal USDC
    transfer from a Shinjuku float pocket to the seller. Many buyers pay from
    the same float pockets. The transfer lands seconds after the pool payment,
    so time can pair the two.
  • For a float payment, our server sees which private payment paid which
    seller, the price, the URL, and the time, until the payment is final or
    refunded. It does not see your wallet.
  • wallet_add_funds: the chain shows the USDC that arrives at the one-time
    address, the amount, and the time. Use each address for one payer.
  • wallet_shield is a public step: the chain shows USDC leave the wallet's
    own key, the amount, and the time.
  • wallet_unshield is a public step: the chain shows the amount, the
    address that receives it, and the time.
  • inference_chat: usePod and the model provider see the prompt and the
    answer.
  • The UNSHIELDED line of wallet_balance reads the wallet's own key. The RPC
    (our relay by default) sees which key it reads.
  • Privacy needs a crowd. With few users, timing can still link payments.

Which endpoints you can pay

  • A seller whose 402 offers shielded-exact. The wallet pays it from
    your shielded balance, and our facilitator settles the payment.
  • Any other Solana x402 exact endpoint that takes USDC, whichever
    facilitator settles it (float pay).
    pay (or the MCP x402_pay) pays
    us privately from your shielded balance: the seller's price plus a flat
    fee of 0.001 USDC. We then pay the seller at once from our own shared
    float. You fill nothing and set nothing aside. If the seller does not take
    the payment, we refund price and fee to your shielded balance by ourselves.
    This path, and every other payment, needs wallet release 08a4b56f (npm
    [email protected]) or later: the pool program was upgraded on
    2026-10-11, and earlier releases refuse to pay.

The largest price that float pay can pay for one request is the size of our
largest float pocket. Read it, and the fee, before you pay:

curl -fsS https://pay.shinjukustaition.com/api/x402/float/config

feeAtomic is the fee and largestAtomic is the largest price, in atomic
USDC (1000000 = 1 USDC). On 2026-10-22 they were 1000 (0.001 USDC) and
10000000 (10 USDC). A higher price is refused before anything is paid
(p03_float_price_above_capacity).

The 3D market game Shinjuku Undermarket is
our first customer and our live demo.

Status

  • Stable version (pinned 2026-10-30): wallet release 3c8b302d, npm
    [email protected].
    Install that exact version. It adds private AI in the terminal and for
    agent apps.
    Every feature and how to use it: the
    0.3.131 release notes.
    Hash: the 3c8b302d row of Releases.
  • The stable version before it: wallet release b650bf06 (npm 0.3.86).
  • Candidate (2026-11-07, not the stable version): wallet release bceca311, npm
    [email protected] under the tag next. The wallet runs Tor for you,
    Windows needs no WSL (on Windows type npx -y [email protected] setup in
    Command Prompt), the shinjuku screen runs every job, setup offers a backup
    before the first deposit, and a wallet from an older version updates with no
    new setup. The changelog lists the rest.
  • What 0.3.131 changes: a send that stopped at
    any point finishes with the same plain command, a send to your own wallet
    needs no address, and a new limit applies without a restart.
    It shows the QR code of a
    deposit address in the chat (a picture in an app, text in a terminal), never
    as a file. It fixes known issues 1 to 7 of
    0.3.86, shows a QR code for a deposit, takes any amount from 0.01 USDC in a
    terminal, keeps every tool text short enough for agent apps to read in full,
    asks "Use Tor?" when an agent app sets up the wallet, waits for your answer
    in the setup box, names your recovery file when setup ends, says when you
    confirmed a send, and asks for each value in a terminal instead of a flag.
    It adds slash commands in Claude Code (type / and pick a command, then add
    its value, or press Enter and the agent asks), one default AI model
    (qwen3-8-flash, 4096 tokens for an answer) for the chat and the private AI address, and the
    time when a refund lands after a seller refuses at once. It says when a
    seller works too long before it charges (about 30 s) for any wallet to pay it.
    A private send keeps the money that its next payments need, so its last
    payment no longer waits until you cancel it. The balance then says when
    one payment can use the change of your last payment, and a request id
    that an earlier payment used gets one new request id named. A new
    deposit or send leaves its request id out, so an old send never answers
    for a new one. A new payment or AI question leaves it out too. Answers
    show you no request id, and the balance names a private send by its
    amount and address. A payment can go while a private send in parts
    runs from the same money, and it waits for one step of a part, not
    the whole part. A refund notice names its payment and stays until an
    answer shows it. A send that the agent app cut finishes at the next
    start without holding up the first payment, and a part that finishes
    before the chain marks it final waits and tries again. A new private
    send leaves in one transfer, and a terminal send of money you received
    goes straight to the address. The wallet reads the chain before it says
    your balance is 0, and a terminal command with no money says how to add
    money before it asks anything. The words of an answer name no tool
    and no field. The history reads go in fewer, shared requests. The
    search for paid APIs reads the seller lists through Shinjuku's copies,
    so every list works with Tor, and an answer names a list it could not
    read. An AI answer limit below 0.01 USDC, a price check on a low
    balance, a declined question and the AI model list say in plain words
    what stops a payment and what works.
  • shielded-exact payments from the shielded balance: live on mainnet.
  • Float pay to any Solana x402 exact endpoint that takes USDC: live on
    mainnet since 2026-10-11 (wallet release e3348092 and later). On
    2026-10-11 it paid two stock sellers on the PayAI facilitator, 0.10 USDC in
    15 s and 1.50 USDC in 20 s, and a stock seller on our own facilitator
    (488372b4 and later), 0.01 USDC in 16 s and 17 s: see
    proof.md.
  • Faster pool anchors: live on mainnet since the pool program upgrade of
    2026-10-11 (wallet release 08a4b56f and later). The pool takes an anchor
    about every 30 s when it grew. In our test, 12 of 12 new deposits could pay
    within 45 s (median 18 s).
  • Pool moves: live from wallet release 701809bd (npm [email protected]). When we open a new
    pool, the old pool keeps serving until it is empty, and move moves your
    whole balance to the new pool privately: you pay our float in the old pool, and the float pays you
    in the new pool. Nothing goes through a public address.
  • Per-user pockets: replaced by float pay. The wallet fills no new pocket
    for a payment. pocket reshield returns the USDC of an old pocket to your
    shielded balance.
  • Hidden amounts (scheme confidential, the V0b vault): retired. The V0b
    program was closed on chain on 2026-10-11.
  • The wallet file and its proof tools, served from our site and our onion
    service with SHA-256 hashes: live.
  • Key ceremonies: a multi-party ceremony: not yet.
  • Independent audit: none yet.

Listed in the official MCP Registry
as io.github.ShinjukuStaition/shinjuku-mcp. npm: shinjuku-shield (the one package that holds the wallet; the older name shinjuku-shielded runs the same wallet at the same version, so wallets installed under it keep updating: from the release after 0.3.186 it is a small package that runs shinjuku-shield; 0.3.186 and earlier hold the same files),
published from this repository's workflow with npm provenance (from 0.1.1).

Live on Solana mainnet. The current wallet release is 3c8b302d (npm
0.3.131, pinned 2026-10-30). Every feature and how to use it: Release 0.3.131.

Every release and its changes: CHANGELOG.md.

Float pay paid two stock sellers on the PayAI facilitator on
production on 2026-10-11, 0.10 USDC and 1.50 USDC, and a stock seller on our
own facilitator, 0.01 USDC twice: the transactions are in
proof.md.

These transactions were made with real money through this MCP
server, against our production facilitator, on an earlier pool (retired
2026-10-10). The first two came from a new wallet with the default
setup and no SOL at any time (wallet release 94a357bc). The others used
wallet release 1a336885 (2026-10-08).

Tool Transaction
wallet_shield (no SOL) 5np1EYjN…fH2
x402_pay to a public satellite-imagery seller (0.013 USDC, JPEG answer in 8 s) iC6gnjFM…DHwC
wallet_shield (1 USDC in) hWzDiR1R…izn
wallet_unshield (0.5 USDC out) self-pay 5evVHz8X…r9uv · exit 4yY2YXLS…pgF2i
wallet_unshield with your confirmation (0.25 USDC, release 1a336885) self-pay 3jQyPgrA…QEWw · exit 4yA3qkHU…jCoh
x402_pay (pocket exact, before float pay) kX2zbbuR…8wW

No unshield transaction contains the wallet that shielded; our facilitator
paid every network fee of each unshield.

Full guide: https://shinjukustaition.com/skill.md ·
Onion: http://2kfhlfuyuwvhmibjrpxqsg4nrbcxasjgjq7kmnfzgfwzptkhhznz3dad.onion/skill.md ·
X: @Shin_StAItion

Check a release with verify.mjs

verify.mjs checks one published release with one command. It needs Node.js 22 or later and nothing else:

git clone https://github.com/ShinjukuStaition/shinjuku-shield
cd shinjuku-shield
node verify.mjs 0.3.131
  • It downloads the npm package shinjuku-shield and checks it against its npm sha512.
  • It checks the sha256 of the wallet file inside it against the package's own record.
  • It checks the wallet file against its row in the Releases table below.
  • It checks the wallet file against the hash our website serves.
  • It reads the npm provenance and checks that it names this exact package file, this repository and .github/workflows/publish.yml.
  • It does the same download and provenance checks for the shinjuku and shinjuku-shielded packages of that version. A small pointer package must depend only on shinjuku-shield at that version and hold no wallet file. An older full copy must hold the same wallet file.

Each check prints OK or FAIL. A package that npm does not have at that version prints SKIP, and the last line counts it. The script runs no downloaded file.
It does not check the Sigstore signature of the provenance. To check it, run npm audit signatures in a folder where the package is installed.

Releases

Each release is one file, shinjuku-wallet.mjs, and a set of proof tools.
Our website serves the files and their SHA-256 hashes at
https://shinjukustaition.com/wallet/<sha8>/ and
https://shinjukustaition.com/proof-tools/<sha8>/. This repository is a
second, separate place for those hashes: each release adds its row here.

The stable version is 3c8b302d, on npm as [email protected]
(pinned 2026-10-30). Use it for a new install. A candidate, bceca311 (npm 0.3.192, tag next), is out for testing.
A row marked "candidate" records a
release served beside the stable version and published on npm under the
tag next, not latest; it becomes the stable version only when we say so here. Rows
marked "no longer served" are gone from the website; the other older rows
stay for the record. Some short-lived releases served between 2026-10-05 and
2026-10-07 have no row here. What changed in each release after 08a4b56f
is in the changelog.

Released (UTC) Wallet release Wallet file SHA-256 Bytes Proof tools SHA-256 of the proof-tools file list Proof-tools files
2026-10-02 68aac3c1 (no longer served) 68aac3c1f7bcf9e21c44637c5db4cef3ad8ed52732cd5634f0884d1417a78b1d 9,476,013 864898cb 864898cb1a7db74c54bc567307795ba154f2b8ed70e36a1336bf8c6c06c5c702 29 (183,830,695 bytes)
2026-10-05 f561eccf (no longer served) f561eccf5c357731d9be5bc06a02accbc52e6368dd95ce95efb85542c039acc7 9,548,479 864898cb 864898cb1a7db74c54bc567307795ba154f2b8ed70e36a1336bf8c6c06c5c702 29 (183,830,695 bytes)
2026-10-07 833aeed3 (no longer served) 833aeed35eca3ad85a9b8b949b2452945a071081765677060c509fd786976ff4 9,602,171 c777fa3e c777fa3eac5f874d0b8b07a4ed352ece37825412b9dfde206222f66a31a12252 29 (184,817,703 bytes)
2026-10-07 cbd97cea (no longer served) cbd97cea4c71cdf0b27df3b59d687cd65e4b6d93965e36a6a8f3f5a525c12c42 9,798,568 c777fa3e c777fa3eac5f874d0b8b07a4ed352ece37825412b9dfde206222f66a31a12252 29 (184,817,703 bytes)
2026-10-07 c0fb991f (no longer served) c0fb991f0a59133c389486af11b40f0565732331152b9b8b82a84e62999d9bc3 9,932,761 c777fa3e c777fa3eac5f874d0b8b07a4ed352ece37825412b9dfde206222f66a31a12252 29 (184,817,703 bytes)
2026-10-07 a66228ab (no longer served) a66228aba12d70e4f2cfc0fa83122bb09073bbd5734aec74a0b16ddebad044a9 9,937,880 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 c7abfaaf (no longer served) c7abfaafb1fbcdae82adeb927b4322d79582cd45af5410f5af532141e2d74004 9,944,079 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 0a638498 (no longer served) 0a6384984b20f971739f29ba3b7d1d54ff9f0861e79f330b7018812c06ba5e08 9,947,337 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 33d54d54 (no longer served) 33d54d540882fdbe8d2cfaf85cfee3a34084f6de6f30a0ee7416f1996fb1f176 9,949,930 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 551f8ad9 (no longer served) 551f8ad94c8a9eb17edd1322c22381e30b363d6e9478869ca92ee753162356ce 9,959,998 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 dc92be17 (no longer served) dc92be17c691b053e6a63e7b60c64d08952e56b375d8fb9010e735083d200562 9,994,933 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 bf2652a3 (no longer served) bf2652a341042f419a2dd63157bc82f354a63d01652ebb62f265540f77d71d0d 9,997,344 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 6909057a (no longer served) 6909057a6992ed86c302318cee394e8aa93bb27a7b4d006a0cf6f170939fd95c 10,000,534 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 c6afbdbe (no longer served) c6afbdbe7e3da1d159a3f90af4ab1524a4397ca52f8d1668e5437ad10d026aaa 10,041,883 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 3765885f (no longer served) 3765885f2f9fdab66250967a4f3392708177f10c3feb7efd1f0e05cbbda39a8a 10,083,253 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 97d6703d (no longer served) 97d6703d6e3060fc07e00453022cdd800a7a67854a3be19d056c6993aed59a6b 10,085,139 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 721b8d65 (no longer served) 721b8d6561911e580597559df09d3dbad0cee28b234204e1b58cc60634a464b9 10,086,778 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 061adadb (no longer served) 061adadb83970c5954fbca5a7650c7d48644df10bdeed01795bf256a59a94c71 10,087,516 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 b4c514cd (no longer served) b4c514cdd74db9644478f804eb0f44274843916196f0be140b7788906d56ab0d 10,087,976 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 768001dd (no longer served) 768001dd1107bfa2bdcfaaffb53b791591a8b9e2c012889ce14b615a30b49ee7 10,098,493 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-07 57bfd2fd (no longer served) 57bfd2fd31e127d7bcfdbd11f067cb34085d23f6938be0daf3a106bd7226fb40 10,101,617 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-08 565c4f87 (no longer served) 565c4f8710070da6e604d0fa5a25f3147ae5dc9826bbc556e51113abce8c5276 10,107,045 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-08 63316238 (no longer served) 633162382f09c72a48eb6d1fc21a0e09a9b5e4d920da5e74ab6eb018e6dcaf85 10,110,248 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-08 b7d6f394 (no longer served) b7d6f394211c9d08ad158dc5e31495f31391c4dc5a9a60dc57a3773e443ba133 10,149,069 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-08 c4a50798 (no longer served) c4a50798e53cdde49c34a51ab16143d095278e1477eedcf0a72bc6f83ac61042 10,154,630 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-08 2c2f9874 (no longer served) 2c2f9874f95619ef291f89fa88158b97d2125198a12abe8ecade9d6c2e9f10fc 10,175,816 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-08 1a336885 (no longer served) 1a3368854f4bdfe185a2ac398106c9b39a7148225f1a3ec6a6dcead563c7ed53 10,176,434 82b2d870 82b2d8709f28cfdd65c9a03707af4811b8d6e77b1231b4e1de6dd2d84f209c3b 26 (144,319,243 bytes)
2026-10-08 11fe6b40 (no longer served) 11fe6b40661d3af5e7fe50a20603a1efde4d0997fc243fb16709daad94fd8d29 10,289,404 24e819a8 24e819a86928a3da7b2f0d297237f6411129cc0cccffbc77d92461022e617da0 26 (144,322,131 bytes)
2026-10-08 94a357bc (no longer works: pool program upgraded) 94a357bc22e57592fde37c3a98a4a79a79d031ea5f1ab90261d2f25d7ad85aec 10,438,545 262e1e98 262e1e98f871a12dbd7f3d6a41350982a098109e7e7356e44e854b96dac73f24 26 (144,322,131 bytes)
2026-10-08 a8516e49 (no longer works: pool program upgraded) a8516e499a99fb8c0157cbdf5321ed3e9352d4511707b5ccc39e12277771c529 10,438,942 262e1e98 262e1e98f871a12dbd7f3d6a41350982a098109e7e7356e44e854b96dac73f24 26 (144,322,131 bytes)
2026-10-08 d2a7291f (no longer works: pool program upgraded) d2a7291f11d583fab55b39ab67cc820808e5c7607618d1456c70cda34eb3450f 10,441,804 262e1e98 262e1e98f871a12dbd7f3d6a41350982a098109e7e7356e44e854b96dac73f24 26 (144,322,131 bytes)
2026-10-09 36d0219d (no longer works: stale proof-tools pin) 36d0219d0ccb169ff0dc6d81d60a0437c10e7c26d9878fe673d86cc4043fb581 10,759,010 a9f18f88 a9f18f88d1999f50f1c589ec80c746fda634262c7051a5e7d76c534fe9431db8 26 (144,324,423 bytes)
2026-10-09 14dd9efa (no longer works: pool AAG16 retired) 14dd9efa7c6bbd2906a56e732a4aff9d23c7b867b6fd9fec4f005494acc3823b 10,759,068 9975fdf8 9975fdf857298f5fcb82feba64400b21faca0bad846c61e9126b9a0663d430be 26 (144,324,423 bytes)
2026-10-10 f2ea6840 (no longer served) f2ea684051a96e03ea86d998ad5b2f4033de55fce3a4f9695376e611884fdbc6 10,788,620 ad860e62 ad860e62dd9bde09008fce798dbe0970f59ef9f7fca846e5a5238c93d7f42597 26 (144,319,242 bytes)
2026-10-11 e3348092 (no longer served) e3348092deb29664a3496827f72bdd6dafc9f5f67f41b463da4c2bc84432cfac 10,846,173 ad860e62 ad860e62dd9bde09008fce798dbe0970f59ef9f7fca846e5a5238c93d7f42597 26 (144,319,242 bytes)
2026-10-11 9f9b4039 (no longer served) 9f9b4039a044f74189b8a1a932c489c9653c1cdd3609d6b062363ced61ca30c6 10,814,984 ad860e62 ad860e62dd9bde09008fce798dbe0970f59ef9f7fca846e5a5238c93d7f42597 26 (144,319,242 bytes)
2026-10-11 488372b4 (no longer works: stale program pin) 488372b4f12886748870eb5fb6d5f25eb42a43b6ddc6f74c20cac033fe5f6927 10,818,483 ad860e62 ad860e62dd9bde09008fce798dbe0970f59ef9f7fca846e5a5238c93d7f42597 26 (144,319,242 bytes)
2026-10-11 19542942 (no longer served) 195429425616ad43e2e4bbb61e31da7b25bd74b30301b28ae4f4aa18a08250b1 10,818,483 47678912 47678912949d7da8b705c399edf03d2367465f6eb581b00a059356373baed28e 26 (144,322,174 bytes)
2026-10-11 394d020a (no longer served) 394d020a4183ea7ff50282001e5f37cd5d5602822ef468df72569a0c3292061e 10,819,973 47678912 47678912949d7da8b705c399edf03d2367465f6eb581b00a059356373baed28e 26 (144,322,174 bytes)
2026-10-11 08a4b56f 08a4b56f6452268ffdd513e67326de8782b53dcec16ba88adaddf16793581206 10,822,047 47678912 47678912949d7da8b705c399edf03d2367465f6eb581b00a059356373baed28e 26 (144,322,174 bytes)
2026-10-12 701809bd 701809bdf80ea16a9d16105f067998029d2a0f03d69b885720a08d806eae30d4 10,943,907 47678912 47678912949d7da8b705c399edf03d2367465f6eb581b00a059356373baed28e 26 (144,322,174 bytes)
2026-10-12 28f33853 28f33853062c9982283f59bef13a6bb33b6ce474ea62c0d30ae6e0d473e66da2 10,945,718 5bed238f 5bed238f3696208ca3a8e66d206e5fffc85f1823e959abe1901c2d57c17bcdf3 26 (144,319,242 bytes)
2026-10-12 a9b9ea19 a9b9ea19ca82a7e4fe991f01050aae148bea45db0bb46be31c22df310e081969 10,949,292 5bed238f 5bed238f3696208ca3a8e66d206e5fffc85f1823e959abe1901c2d57c17bcdf3 26 (144,319,242 bytes)
2026-10-13 d769dad3 d769dad321e1a1f88e0557c65b56336b2d6356fbd0167bc0f4acbed55793b27a 11,120,051 5fa83692 5fa8369234088b532977254d91109e7eced3aef0228b9ed55c7c8a02e0a9a908 26 (144,322,314 bytes)
2026-10-13 d2ba7e62 d2ba7e62eff143df57466d5f0ba534856e29c88007eafc22c3dfaeb89535eadb 11,120,794 5fa83692 5fa8369234088b532977254d91109e7eced3aef0228b9ed55c7c8a02e0a9a908 26 (144,322,314 bytes)
2026-10-13 db079e37 db079e3700b17388873252fb91358d1918801ff69d1ee26f4e3e9f21bccbab34 11,121,670 5fa83692 5fa8369234088b532977254d91109e7eced3aef0228b9ed55c7c8a02e0a9a908 26 (144,322,314 bytes)
2026-10-13 6a87b0a1 6a87b0a15ec5979313adc3e9b7f19e239c2f14af1c46565e958054dbc60e8af7 11,122,024 5fa83692 5fa8369234088b532977254d91109e7eced3aef0228b9ed55c7c8a02e0a9a908 26 (144,322,314 bytes)
2026-10-13 b32bffc7 b32bffc727e1e7e33fb134a3918638006259033511e1a2aaf455d037da1f70b3 11,124,201 5fa83692 5fa8369234088b532977254d91109e7eced3aef0228b9ed55c7c8a02e0a9a908 26 (144,322,314 bytes)
2026-10-13 2ec5cd82 2ec5cd82c2ae8b9008491d07b5dc4740a5db5904e92814870fd66080aec7fc7b 11,113,178 5fa83692 5fa8369234088b532977254d91109e7eced3aef0228b9ed55c7c8a02e0a9a908 26 (144,322,314 bytes)
2026-10-13 6adb4430 6adb44302a8db0b19245a1366e56090c0f0d27c443f37e69c1c2ef97151c9e74 11,115,097 5fa83692 5fa8369234088b532977254d91109e7eced3aef0228b9ed55c7c8a02e0a9a908 26 (144,322,314 bytes)
2026-10-14 8b897dc9 8b897dc95ce8c17c9b0730c6ca5fddaf727b315d054489154d30bd795692a390 11,127,328 5fa83692 5fa8369234088b532977254d91109e7eced3aef0228b9ed55c7c8a02e0a9a908 26 (144,322,314 bytes)
2026-10-14 c1963de1 c1963de19cc61973bc35d2d55284b771db5846c323419f771e342f9cd3052e57 11,128,106 5fa83692 5fa8369234088b532977254d91109e7eced3aef0228b9ed55c7c8a02e0a9a908 26 (144,322,314 bytes)
2026-10-14 79f40d94 79f40d948e80ecdbe29b67d336b971ecc50c3f6b220349e0915ff7d8cae7178d 11,130,649 5fa83692 5fa8369234088b532977254d91109e7eced3aef0228b9ed55c7c8a02e0a9a908 26 (144,322,314 bytes)
2026-10-14 00da3f6d 00da3f6dfb766d83cd9f1fdb8c3a335c2de51a5dbab0d13b0e6ce3d50106cf02 11,131,156 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-14 10c8bdfe 10c8bdfe8bd677ce6f50d143c1af4b28d5b3f653c5c65f6356f1034e6f5840df 11,132,902 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-14 5e07378e 5e07378e3416f54223cbb56fc04d28bed3106dfbdef58b62570ad0469f27aade 11,135,322 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-14 1505ebf0 1505ebf0afdb67fbbe6050d5065335f3b13e94cefd356fb422ce946f4fba3253 11,138,284 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 f2dc55fb f2dc55fb5d552bef98fe2d530d37c301045501d0f750a2c9a17ddf63b1a934f3 11,150,739 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 adb0f68b adb0f68b23e192445ecb391a89f3e05dba89f05d0177aacdb092fbea3539fa85 11,154,518 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 dd6ce54a dd6ce54a50e0e58be863f647620b767cb760d1278ee089b74c10c98068383047 11,159,107 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 902397c7 902397c7c00f815b7f80b1275a1a987ca78871df5fdf370e7c80a282ecfb15a4 11,176,401 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 a523d67b a523d67b85ebcfd6f07f653c2a9bde16a7c9d87f908874ddae71cf91083fabc8 11,177,579 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 c8c82dc4 c8c82dc4ce0277f8c560adec5cb16119709d00240a8efa4ebbb2a426e5161b6a 11,178,235 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 3ec79a83 3ec79a8335ea99f87cf8f2c34ea8723c70a30bd6f30fc5c0fb177edfa1816714 11,184,498 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 dae9ba88 dae9ba8800e48179602d5595c5bbc71029a758be726e72482d24a52126649ac9 11,184,999 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 b22ae0f7 b22ae0f772097b698eba694cfec8b31061921a38948c11702df3653881361e9f 11,185,132 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 fc7329d0 fc7329d0267d82e7f06546009c64924d0ec713165c3bfe270512ba0672b94cbd 11,187,416 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 65889774 658897741c5d9bce482ff9d932f4ade7e51cf98f834e78c3f693da1e1771e547 11,193,868 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 1335e815 1335e815f99108526e1a9d4e93f53a94d95910ea150e404987f09826c39fc547 11,195,840 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 a7255985 a72559850e57ae647a20df449f9f47be5d359e1cf1debda30ded104225bdacb5 11,212,421 78c71143 78c71143ecedf22096fdc1901eda5160e29c141f6961cce935b92e714ff85bd9 30 (191,014,041 bytes)
2026-10-15 5f5ca189 5f5ca189829786779ba9e05c237bb6edf057a06d4745f0a601212136aa0bf68f 11,216,201 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-16 5b21a788 5b21a788efa0e47f3e83f413f73a4c11a70f068edda47f4f68be3bd6c0855955 11,226,333 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-16 387938b4 387938b415cfece575952e875ecafc7149e29279e202a4e862433f66f664a803 11,230,018 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-16 f55f1fb8 f55f1fb8f1b63bf4caf94b552f06f6c3126ed8fd598d6d8fe8fc9abd7377b509 11,232,354 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-16 0ff1dea5 0ff1dea585d7a2ca69e0a37f43684dcb411f5a28eafa84a3f7fee65f5cd13904 11,235,804 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-16 99e5ce60 99e5ce600a930373051d72e16b2fe75bec451cfbdd509439e58546d0e77058d2 11,247,206 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-16 54ae7e65 54ae7e6525d0c2a5330f3243891a2cbc5d728a4bcea81a61ba3aaf065bed8b63 11,266,570 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-16 fe90fa0a fe90fa0a418682c08b49b05bcda64ffd7b6cf8803166f95968205c80a2fcab4b 11,282,021 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-16 efd1a80d efd1a80db30f354b1fd326c9619666b7d63ce4051428a5e7a4f267a04ca568ea 11,284,496 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-16 8d1268b7 8d1268b754e192e52be5ba3d5cf134ed42eee552605d96c11076a6004204c737 11,402,568 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-16 4baf3bca 4baf3bca327b51694452760cdb6a4f65d8e869a4c64040c832e92937f66ab395 11,416,627 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-18 491c1f01 491c1f0186d39c718fba9a7e275a88a72752a90a63fab845ae8844abfbf38694 11,537,195 8d8db6a0 8d8db6a0ef847031d01a2b65608e4b456c231c0d348f893e01eba4ad908907f3 30 (191,017,113 bytes)
2026-10-18 22fd74c5 22fd74c53ae9aa03fb33a848794e41f62e92c1d20e95697cc9d3233ca76c2432 11,593,541 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-19 dfff2182 dfff21825cc4452582636aa8ccf6fe96823b1f335bdb0514c723f9a5ae6f02dd 11,614,411 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-20 667ac38b 667ac38b9b42b60853ea07024e81b1074105b3dbfba4346d61d86ef3aabef1b3 11,939,765 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-21 285d2c1d 285d2c1db3cfd9d8a5df47acc2c70e7e65816539c3f2ad216ede6a16358d762b 12,117,554 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-21 70ff655b 70ff655b113c19d39c8594566c77d38fe7d459ea415f66cda1c09919841ad1a9 12,128,720 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-21 e18d1d95 e18d1d9537ea063f2a28f88b4db41a1b93067c5d5aa4f300daaddf80d8544074 12,133,623 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 a5a9b7dd a5a9b7ddd7aa96aa7feb6470868cd662c20f0f412df665093e768c07c4cda23c 12,153,017 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 780f6896 780f6896d6051a0d49b5a716d0ed36d9ea1487342f5582b7f2bc1c91280342e7 12,157,954 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 a18f4dcc a18f4dcc8553e48c173aa610e7b3632d8edb25dbe317dd1f820e44673dd0fa39 12,158,087 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 ad143a47 ad143a47257fa8b5e147ba3f6b662576794b06184abbedce42fd4f74993d9b7e 12,161,659 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 fd8f40cf fd8f40cfc0110953e30d8479bfe751545e04952df8faf03b634073d7fd308c78 12,166,389 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 d9319f9c d9319f9cc0d4e5deebfa15e1ac35bee0bc4f4ffb95cd4f58e400ee322ac11076 12,167,009 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 f3c65200 f3c652001435e22d3e54232fe742166dd8dd5ae183b92c1a24274c7a52ed137c 12,174,893 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 f7b2fe09 f7b2fe093da4904a611ef95fb52e7888ad1f23b2f41681474d1bd9bef75a71f8 12,179,295 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 f1563e53 f1563e53fc8d137fe44e6fb65d7247fa157b3066b7129b41ef9f99d2e3061ba7 12,180,292 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 402e7c36 402e7c3666bf4dfe147de8229872bdf611540526a15d5fdb690392c81b878b9d 12,181,283 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 4d9b6de2 4d9b6de27c68f9fb53c414d063679fde5a62eb26a2a46f13bebfde9a4d74b042 12,186,827 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 3d64f9b4 3d64f9b47b1139c42d3a2ff22642951710beeb669bf633b934b31419e94cc843 12,187,129 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 c6cbe0a6 c6cbe0a61037f0a435f7ce448d6ff6fc6a4a97a9b7336fea33c9e7a1e56c11e7 12,194,855 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 ae568c80 ae568c800e9c2e6ccaf4cad6958cf133aa07469a93428827e679d3a1be89505f 12,197,454 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 61674c4e 61674c4e8c6309ae6c93338211bf57a674837f572e498215300031a65b9aa743 12,200,396 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 07990722 07990722e8c34815b7af576fe293f456c602895b74cbe6f75d5ea3d8b5a1d578 12,201,104 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 ff6f25bc ff6f25bccfd2a50929a8dc82137b4fb42172790f9d71a6c07f166bda3e052d22 12,210,958 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-22 bf5ad0c1 bf5ad0c16095110ed0258b16525e55dc743dbaa36b6ba0e0738d4ab9c185ce90 12,226,842 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 57e0bc6a 57e0bc6a687a2bfdd99fe9ff69834c53f842829dac245c756dc02a49cc1bd0fa 12,235,821 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 6d58045e 6d58045e00745225ce82558f7a464bd8ad3379915ac3d909a4cd1c9a2ab7c84c 12,243,658 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 e2b3bd72 e2b3bd72ce01876258900e8683258e3d1606c598f9757c882fe49f57ac2868e5 12,248,891 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 b840ab22 b840ab22b761c3a08caa1fc73f7e9d0b4ae0139a21aeca10fdf71086a0092704 12,282,953 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 2b67ac65 2b67ac65c0b0dbe5bb41d3c393c8c44970fdd9c43e7e84a96c6a9e373ad5c957 12,294,189 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 98296ff0 98296ff0ef88ddfa494d9e1f46963a55563d92b1ec6fc29cfc1b0f18debe81e0 12,313,625 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 (candidate, npm next) 63f08b62 63f08b6256e8f9d53e9d4e2f24be3ac56580e8cb82d64517a8326e6749eaa928 12,448,432 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 (candidate, npm next) eaf7063e eaf7063ed1fe0dbcbf1c1f689e1ce60018401d669fe8bad7a7d4483cb875da0a 12,477,292 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 (candidate, npm next) a59aa27b a59aa27b98cd1822c4651ed0567cd35b3f03e087818d8e5cfdb71e6320b7ffae 12,484,127 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 (candidate, npm next) b73f57e5 b73f57e58ae0466a090f5b1728e7852bab48e7d28ad6bb0f0ba9657b6cc681b1 12,505,075 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 (candidate, npm next) 654041bc 654041bce4139bfb928180cc1a3c1ff05e570d9fc51ddfa718e9d0ef7fbf9095 12,513,236 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 (stable, pinned) b650bf06 b650bf0682830e05207f52bad2ba426ec7f8fa1bbbfdb7e028057865e3d83d24 12,522,998 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 (candidate, npm next) c0b0b77b c0b0b77bafa0cc4e15bd9c01e207c73b8188102f8ed1c9fe5e74e67c7bde008b 12,523,149 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-23 (candidate, npm next) 17d8275d 17d8275d7939ba1783b53b5839277d88fdb473fd4e1cfb1e59e6f0226e13d8fb 12,524,840 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) 9af59797 9af59797297cdea3750a86cc8bc6287cab8952e4a8fc5da4bdb8d3e48ab2bd67 12,528,864 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) 4cda1792 4cda1792a58d926b79cdd34975b53b9177940b1f3e266318695cb32d7f70b295 12,682,087 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) 1d784246 1d7842469a3a56390eae2b339649cb42551a19ef63c2f9b1d5716f875ce11b52 12,694,423 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) afa037c8 afa037c8868c722838c0642335b1767af4bcc0040878ae441e83cb94dd9aeea2 12,692,822 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) 6048ca61 6048ca6123de12e425ab2f3575fa69838eb1ea93dbff3d2facab612e0004bf8a 12,704,961 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) af5b54d5 af5b54d5bce11c64a002dca7d59c8593767ddefe4b7177b8ef44cdefb27f0030 12,706,861 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) 6304f680 6304f68098886ee10121039f4fb06e7b07fc812b608c5595292ffeaad1ff2ea9 12,720,423 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) 4a3321b0 4a3321b081e721e8815c614b5e68bb8bf31405cda64ff0b1b9f3b98e62958bab 12,723,643 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) 7438f0e3 7438f0e355051a345b05c050dcc5f2aac8a676e3972b1cf195cc48bb41883790 12,750,584 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) 1fe3c2f7 1fe3c2f76f93108cbe16d3ca665e14e298d03ec14f081a9660f82e114011e87d 12,772,279 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) 5023a291 5023a2917ba9f9f802a955c0782826c061664754b9b463c59aca590154c1539e 12,786,716 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) fe6cb068 fe6cb068e76316bd9c4fab329dbd3586d980d69f6fe42a0f01fa1a254abb4410 12,791,175 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) 1c3d204e 1c3d204e7ba114b9d80654035efb4a244ac607f038e1961f23663b7af9b45dc5 12,794,106 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) 3a984162 3a9841626e4a97d756f610278b4e03f2571b556a7b06207c418a850b2b5200bf 12,797,194 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-24 (candidate, npm next) b5da74cb b5da74cb566cf4df5a7381cbb3eb28797aff16377f170472b6fcefce230db2a2 12,800,520 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-26 (candidate, npm next) 2408266a 2408266a7f9cbcbb20184b9057f7a4b2c4f16aae5cc8bfc4860c9ec2ae491022 12,809,303 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-26 (candidate, npm next) f8173150 f8173150b96135bb49254f76b2b0de6154439b0d8dd47133320c2df65499e494 8,272,978 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-27 (candidate, npm next) 28821f7e 28821f7e8b417b970591f4d9e27071b1d4886575f770c29b29cb112f7ed89963 8,286,646 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-27 (candidate, npm next) 3163c1c6 3163c1c64f3d99abd84b0d2914132a07377d9a5ad2c08f803bd75ca8f042a67c 8,295,891 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-27 (candidate, npm next) b09cef56 b09cef5660e803ffc955922b067c8e00b717853b994c096d2fc591053bd59378 8,328,905 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-27 (candidate, npm next) f6ab1c40 f6ab1c4098bf84c9d5af4dbbcbf9aa077430dd347aa14912fbaf571741bd314a 8,332,382 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-27 (candidate, npm next) ca9504f8 ca9504f8356a05d2a1fc36428f6443419e6943406d11e201d4fa2ff9d6c84814 8,333,810 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-27 (candidate, npm next) 1406c0d4 1406c0d44399772d43e33dc6b4cfb7428f9f24215e13389ac46f5dd6dc28d224 8,331,849 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-27 (candidate, npm next) bfaedd12 bfaedd12d120b4b5421cdf6c9c06b07b7e338fd6d4e74b7225f2a0d3aa150cf4 8,339,853 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-27 (candidate, npm next) dc0b6b99 dc0b6b99ced49b6c454c44c8b92ee46d77d38d5fdabcf44154b4200894425006 8,345,095 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-27 (candidate, npm next) 148b3f52 148b3f5279bf4b0914aa076c617b9fd51956480a57058dfee4492c208fd72e7a 8,348,544 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-28 (candidate, npm next) 458187f8 458187f8965d771cfb6028f26b902dea88f170e8d38c3943d7e3b3d5d1625593 8,387,014 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-28 (candidate, npm next) 396cdf6f 396cdf6f70b5fdf59dc7459886dfff44b027d1626accf8a8b0d53bb20c01796c 8,403,065 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-28 (candidate, npm next) ec36e97e ec36e97eb1f5e46885b1d6ed829214fdbc3d8429da8e82742533e55cd9ecb9fc 8,412,038 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-28 (candidate, npm next) 27af600c 27af600ce166932ba579f8155970ea89dfe489ec56ef98fd5f9e7f3db69d049a 8,450,204 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-28 (candidate, npm next) 967a5d2f 967a5d2f095fb69eab394061c62db26cc077bdcb3e7a0791480f2b4ed54308eb 8,458,850 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-28 (candidate, npm next) b2d6f450 b2d6f4507136f85fea6e6305a0a958a98b95c3ba2b82a060cc182b4a6d6f26bd 8,471,165 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-28 (candidate, npm next) 67cedf24 67cedf24617c4cd78d268b549ad4b346101b6de7338a5a3889df8f81a29c78a3 8,472,739 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-28 (candidate, npm next) 916f76a4 916f76a4396c16a3e274e9644291fef6362b5ba89f462400859888f9d94f77f9 8,474,565 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-29 (candidate, npm next) 885a1cb2 885a1cb267c4c77037e8a92d4fc5f093768cf59dd51221d6d58b23b9360e6680 8,655,739 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-29 (candidate, npm next) 48f5c8ab 48f5c8ab81e2ef98cc7c1d8daded7e7990caab27a7e9b7b0d85f45ec6a9cf806 8,708,740 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-29 (candidate, npm next) ffeec7cc ffeec7cc3bbf725f6735af177fde4e435f76dc81bb5dd8b098b6840af828c99e 8,720,536 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-29 (candidate, npm next) 487128ca 487128ca5b4e0eb3583a73ee5d9bece578476a10e6652f283aa1688276b916f2 8,741,887 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-30 (candidate, npm next) 821b09a3 821b09a3d1295b30eee38eafb6aad2665a60808a3163baddeb14c02366109e56 8,815,826 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-30 (candidate, npm next) 1de148b9 1de148b9fd19cd1bac5b690267cb77c227a3e74300873fa9eda02085833ccb2f 8,826,955 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-30 (candidate, npm next) 8f281d4a 8f281d4a0dfc79a40a10dbf8c31de01823d8dffb15c151b6e774d781e96f1736 8,847,121 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-10-30 (stable, npm latest) 3c8b302d 3c8b302d8f0616edc98cc277f1b41b5cc47d121efb77a7b1cba3214ab60fb8b8 8,854,666 a9af32df a9af32df6b7ff7e3243bd607b7ff582da5732fa422f28afd9b8bc3e9f0d6c741 30 (191,112,305 bytes)
2026-11-02 (candidate, npm next) 8ab2085b 8ab2085ba462b3c2dda5d50de087d053593a7e96d2210bf9dfaa6d763dbe20d2 9,047,711 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-03 (candidate, npm next) d446c36d d446c36da9b526aea16cf685fb7b1532542f1eea13d0f2acabca373711bace8f 9,048,030 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-03 (candidate, npm next) 706b774a 706b774ac8ab6d671a81f7aa269e2a1d1e222d60f545ddde48945fbfdc8b0bcd 9,052,676 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-03 (candidate, npm next) 65d2837c 65d2837cf983622ed22a9d2bfb488a3a6ff0f276cb0d561b1be6074415daab0f 9,055,610 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-03 (candidate, npm next) 003fb669 003fb669ed2395e72fbedad6336c943c92c940fba878d03c4fa03245e2b5ae78 9,056,153 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-03 (candidate, npm next) 46b6176b 46b6176b85190a52572566a760686111c9f01d07b8057e83a3ea1d76a20a3f5f 9,069,628 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-03 (candidate, npm next) 7e2a4392 7e2a4392fba9ab1854f4b81a553759d92a07d500b9408515bcf3fb28f28c7f39 9,218,288 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-04 (candidate, npm next) cefda627 cefda627cdfe4d2186085a15dd230f822175f98c4f3a10c4b5f1e1327114d627 9,244,374 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-04 (candidate, npm next) eb6f9ba6 eb6f9ba6c43c52189f2d1f9124f1e23b23e471a168ffc0fe008c818c35f6b981 9,251,599 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-04 (candidate, npm next) 9bbc535c 9bbc535c39d7f3ca35992be853e343d8374075618e0130ef2ab4f526a300b091 9,260,169 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-04 (candidate, npm next) 424f0dda 424f0dda8e881f18e02c8fb9b224deaa3c4f65476f26e5f66e4a6dbb30ff2d88 9,260,304 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-04 (candidate, npm next) 7a038d95 7a038d95a5e6a448ffafbb485aac78f879c5ff57a261b73a263ffa5e9c9b6116 9,273,268 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-04 (candidate, npm next) c7dd8df8 c7dd8df81dd11b9f7cce75520a5c4ebacc1cd071faa64497a5454745cce12a8e 9,297,384 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-04 (candidate, npm next) a896aa3c a896aa3cf3bf8327b7e63ff433a9373a16c26437b16ba8a319c0668c32523fbe 9,298,619 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-05 (candidate, npm next) 162d3a00 162d3a005e0491faedec0df58d95385a183a68993d209faa54e51dbdc2c81afb 9,298,964 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-05 (candidate, npm next) 6801635b 6801635b43f010f60eea3c04a763a1ad06ef772c20b6a77907c8bdc66fae8e75 9,301,251 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-05 (candidate, npm next) 7320b9c0 7320b9c07d69b0d94e0ee25c1821e1f674dde5964c65e84fe3de3be6c1ff7170 9,306,006 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-05 (candidate, npm next) 9ade26e6 9ade26e6a05c6891180751fdd695d76a8fef6376a8636b2c975b622192ac0002 9,313,549 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-05 (candidate, npm next) 1011ea8e 1011ea8eb912d2b6cdb1c8b5696e9c9c284ac665033663e9f9d4bf553c7843b1 9,317,658 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-05 (candidate, npm next) b033b5f8 b033b5f8e1c224d3b32949534c3da43da92a43b991cc6943889b74701533bafb 9,331,413 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-05 (candidate, npm next) 020857fb 020857fbde16e97bd3ade045266b4f7476f966a68df61b34e8878e7cc92eac87 9,353,099 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-05 (candidate, npm next) 190dcbc3 190dcbc3bb63059691cef5a801d8c249f403dff69a2e45c031da5f5edbde9f29 9,389,003 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-05 (candidate, npm next) 1018a534 1018a5346c79bc828bd3200c8c6c7d741cac55e279d5b88a70f895f44cc105c6 9,392,332 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-05 (candidate, npm next) dd3bab15 dd3bab15896a11e725fd452abbfd4fbad9b412640201141c884a77bd6c81d5dd 9,395,751 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-06 (candidate, npm next) eb821202 eb8212021af756602a223fcb5e329e0eaf488b7b276850014abef3c6a917eb81 9,401,666 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-06 (candidate, npm next) 8d9526ec 8d9526ec3aa19b0a648557fb5ccb8568e7988f91bab9b208767fb00a50c8b71f 9,405,041 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-06 (candidate, npm next) ab594bac ab594bac31fc1416d01a6b552a820a8b35f99418b00d66bffd63991692a3f5c6 9,406,427 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-06 (candidate, npm next) 839c305e 839c305ea9d4e06bfef8f435128052c21d778a3754eba202d27a99359774e897 9,442,293 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-06 (candidate, npm next) 4c74d099 4c74d0997c8a9b3f885f16ddde11a7ed912e216fdf1ac5392ca1dcbda0b0e2d2 9,473,780 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-06 (candidate, npm next) 56086b8f 56086b8fbc2942ce2fdf0a58d9d18c060af7b3d11fce2efd89e217827d0e777a 9,344,331 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-06 (candidate, npm next) a38a1b54 a38a1b5453939a41409bd1049286eea2801c7c67ffa5c216ea43f6b3cb1f0f39 9,353,051 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-06 (candidate, npm next) d67bcc6c d67bcc6c4e3910c2c10af366bc4f0dfab14e7023805cd9b15ebe92f68ba41098 9,344,406 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-06 (candidate, npm next) fed76293 fed76293d7f682c50f249284a7f4bbf14d2d6c7d8926c052c6ef1f683419b8dd 9,349,716 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-06 (candidate, npm next) cab378d1 cab378d1d911f907711de448e5c6525febcd0e73ff8988efcb4ae7d1fa82e961 9,351,549 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-06 (candidate, npm next) 80d2ed10 80d2ed100a8e4a1f0c3926c4572c20f71ed5c333ff510dd0e291065480fe2d98 9,360,488 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-07 (candidate, npm next) f02883e5 f02883e5a9d69a70b2c237fb4bf3c3a80a722c19a0d1fc60042d749bfa263f69 9,334,675 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-07 (candidate, npm next) 6816afb5 6816afb568f56eea0cdc61849cdbba1804ee43e3f22368f6c518c36c7cc2ec93 9,340,659 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-07 (candidate, npm next) 6b2545a2 6b2545a2de92f5fb8df1feebbf9543948db4f8d72ec205d3a1d07ebe89e79f48 9,341,379 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-07 (candidate, npm next) af144e3c af144e3c6a627910142f0a31ac16fa0cf3337d464a85afce247eb28be6575a66 9,345,964 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-07 (candidate, npm next) 9491b5e0 9491b5e02a253f9ee9f72f83f676c678b2330dc8f7655eeeb6f1fcc4fd324a47 9,347,298 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)
2026-11-08 (candidate, npm next) bceca311 bceca3110047bb17e9d30e8a10e2066f2d180f4d5b111bac1c6a5a2b1d88e625 9,362,565 29a6a9c7 29a6a9c77ae04a76abf29670f580759df450e7e393e803d7756f21beabbf4838 30 (191,114,154 bytes)

Beside each wallet file, the website also serves LICENSE.txt (the
copyright notice), THIRD_PARTY_NOTICES.txt (the open-source licenses inside
the file), and manifest.json (the source commit and every bundled package).
The manifest's source commit names our private development repository. This
public repository publishes the hashes, not the source code. Every release is
reproducible: two independent builds (Windows and Linux) of that commit give
the same SHA-256, and our server refuses to start if the file it serves differs
from the pinned hash.

Advanced: the wallet file without npm

You do not need this part: shinjuku setup does all of it. It is for a
machine without npm, or to get and check each file yourself.

The wallet needs Node.js 22.21 or later (or Node.js 24 or later) and nothing
else. The stable release is 3c8b302d: put it in place of <sha8> below.

1. Download

curl -fsSLO https://shinjukustaition.com/wallet/<sha8>/shinjuku-wallet.mjs

On Windows, type curl.exe, not curl (in Windows PowerShell, curl is a
different command).

Over Tor, from our onion service (production):

curl --socks5-hostname 127.0.0.1:9050 -fsSLO \
  http://2kfhlfuyuwvhmibjrpxqsg4nrbcxasjgjq7kmnfzgfwzptkhhznz3dad.onion/wallet/<sha8>/shinjuku-wallet.mjs

2. Check the SHA-256

Compare the file with the hash in the Releases table above. Go on only when the check
prints OK. On any other result, delete the file and do not run it.

Linux:

echo "<sha256>  shinjuku-wallet.mjs" | sha256sum -c -

macOS:

echo "<sha256>  shinjuku-wallet.mjs" | shasum -a 256 -c -

Windows (PowerShell):

if ((Get-FileHash .\shinjuku-wallet.mjs -Algorithm SHA256).Hash -eq "<sha256>") { "OK" } else { "MISMATCH" }

Windows (cmd.exe): certutil -hashfile shinjuku-wallet.mjs SHA256 prints
the hash. It must equal the SHA-256 in the table.

A match proves that your copy is complete and equals the file whose hash we
published here. It does not prove who made the file.

3. Read the help

node shinjuku-wallet.mjs help
node shinjuku-wallet.mjs help init

help <command> prints a working example, every flag, and the next step.
Exit code 0 means done. Exit code 1 means the command ran and failed (one
line says why). Exit code 2 means the command line is wrong (it shows a
working example).

With the wallet file alone, these commands work: every help page, init,
backup-export, backup-verify, restore, balance (without
--refresh), and limits. The money commands also need
the proof tools (next section).

4. Get the proof tools

add-funds, deposit, recover, balance --refresh, pay, buy-item,
unshield, and pocket reshield need the proof tools of the
facilitator that you use: two manifests, the facilitator's public profile,
Linux x86-64 provers, and the signed proving parameters (30 files, about
191 MB, for proof tools a9af32df).

The provers are Linux programs.

  • Linux: run the steps below as written.
  • Windows: install WSL (Ubuntu). Run the steps in a WSL shell, in a folder
    on a Windows drive (for example /mnt/c/Users/<you>/shinjuku-proof-tools).
    Then run the wallet from Windows with the C:\ paths. The wallet runs each
    prover through wsl.exe.
  • macOS: not supported. Use a Linux machine or a Linux container.
mkdir shinjuku-proof-tools && cd shinjuku-proof-tools
base=https://shinjukustaition.com/proof-tools/<sha8>
curl -fsSO "$base/SHA256SUMS"
echo "<sha256 of the file list>  SHA256SUMS" | sha256sum -c -
while read -r sum path; do mkdir -p "$(dirname "$path")"; curl -fsS -o "$path" "$base/$path"; done < SHA256SUMS
sha256sum -c --strict --quiet SHA256SUMS && echo ALL_OK
chmod +x bin/* house/bin/* bundle/bin/*

Go on only when the list check prints OK and the last check prints
ALL_OK. Then give the wallet:

  • --proof-tools shinjuku-proof-tools/proof-tools.json
    (--payer-proof-tools for unshield),
  • --exit-proof-tools shinjuku-proof-tools/exit-proof-tools.json,
  • --profile shinjuku-proof-tools/public-profile.json.

The wallet checks the SHA-256 of each binary again before every run.

5. Use the wallet file

The full guide is the wallet's own help. The steps below follow it.

What you need

  • Node.js 22.21 or later, or Node.js 24 or later. (The two privacy-cash commands need Node.js 24 and
    the Privacy Cash SDK, which the wallet file does not include.)
  • The proof tools (previous section).
  • A Solana RPC URL in a private file, rpc.txt. With --tor, use an RPC
    URL that has no API key in it: a keyed URL names its owner.
  • A private folder for the wallet, and a passphrase of 8 or more characters.
  • The public identities (program, pool, mint, network, facilitator): run
    node shinjuku-wallet.mjs help. Each release names its own facilitator.
export SHIELDED_WALLET_HOME=<a private folder>
export SHIELDED_WALLET_PASSPHRASE=<your passphrase>
W=shinjuku-wallet.mjs

Keep the same passphrase in passphrase.txt and your RPC URL in rpc.txt.

Hide your IP

Add --tor to any command. Start Tor with one line in torrc:
HTTPTunnelPort 127.0.0.1:9080 IsolateDestAddr. The wallet checks that it
reaches the network through Tor before it sends any other request, and it
refuses any connection that does not go through the proxy.

1. Create the wallet

node $W init --pool $POOL --network $NETWORK --asset $MINT \
  --binding carbon-shielded-exact/svm-v3 --backup-out recovery.txt

Caps are optional: by default there is no limit, and only the balance bounds
a payment. init --max-payment and --max-cumulative set caps in the
wallet file. limits shows them, and changes or removes them later
(none removes a cap):

node $W limits --pool $POOL
node $W limits --pool $POOL --max-payment none --max-cumulative none

init writes your recovery text (the seed and the Solana secret key) only
to the new --backup-out file, never to the screen. Copy that file to two
offline places, then delete it from this machine. Keep the
solanaFeePayer and seedFingerprint that init prints beside it.

2. Back up (after every step that moves value)

node $W backup-export --pool $POOL --to /backups/01-created
node $W backup-verify --pool $POOL --backup-dir /backups/01-created

3. Add funds privately

node $W help add-funds

add-funds runs every funding step in order and waits between them. It ends
with ready and your balance. Three routes:

  • exchange: withdraw the exact amount from an exchange to the one-time
    address that the wallet prints. The exchange knows you, the amount, and
    the address.
  • changenow: a fixed-rate ChangeNOW swap to the one-time address, paid
    with Monero (best), BTC, or ETH. ChangeNOW sees the amount and the
    address.
  • privacy-cash: your own wallet pays into the Privacy Cash pool; at least
    24 hours and 10 other deposits later, Privacy Cash pays the one-time
    address. It takes about a day.

Never fund the one-time address from a wallet that you use elsewhere. That
transfer links you.

4. Pay

node $W help pay
  • A seller whose 402 offers shielded-exact: pay pays it from your
    shielded balance at the seller's price.
  • Any other Solana x402 exact endpoint that takes USDC: pay pays it
    through Shinjuku (float pay). Your wallet pays us privately, price plus
    the fee, and we pay the seller from our float. --maximum-atomic must
    cover price plus fee. Nothing to fill or set up.
  • A rerun with the same --request-id never pays twice.

A balance that came in by several deposits (for example 0.779 and 2.000
USDC) cannot pay 2.001 USDC in one payment, although the total covers it.
node $W help names the command that readies such a balance for one
payment: nothing leaves the pool, and our relayer pays every fee. After it,
wait for the next pool anchor (usually within a minute), then pay.

5. Check your balance and withdraw

node $W help balance
node $W help unshield

unshield sends some or all of your balance to a public Solana address; our relayer
sends the exit and pays its fees. Run backup-export again after each step
that moves value.

The self-custody model

  • Your keys are a Solana key and a shielded seed. init makes both on your
    machine. No sign-up, no Ethereum key, and no identity
    signature.
  • We never receive your keys, seed, passphrase, or recovery file. We cannot
    recover them. If you lose the seed and the recovery file, your funds are
    lost.
  • restore rebuilds the wallet from the recovery file. recover reads your
    shielded notes from your seed, the public chain history, and the public
    memos.
  • The wallet writes deposit, payment, and unshield steps to its log before
    it sends them. After an interruption, run the same command again. The
    help of each command says how it resumes.
  • Our relayer pays the network fees of relayed deposits and exits. A
    self-broadcast deposit and the first Privacy Cash step are paid by your own
    key.
  • We never ask for your seed, passphrase, or recovery file. Anyone who asks
    is not us.

What the privacy covers, and what it does not

What the chain does not show: who paid a seller from a Shinjuku Shielded
balance. With float pay, the chain shows a pool payment (the payer hidden)
and then a Shinjuku float pocket that pays the seller. Many buyers pay from
the same float pockets, so a chain observer cannot group one buyer's
purchases.

What it does not hide:

  • Our server sees what it processes: your deposits, payments, and exits,
    their times, and the IP address of each request (a Tor exit with
    --tor).
  • Deposits are public. A deposit's amount and time are public. With few
    depositors in a pool, time can pair your deposit with your later payments.
    When you are the only user (k=1), waiting buys nothing. Our pools are new
    and have few users.
  • Float pay: our server sees both sides. For a float payment, our server
    sees that this private payment paid seller X, the price, the resource URL,
    and the time. It does not see your wallet. It keeps that link only until
    the payment is final or refunded.
  • Float pay: the seller's price is public. The transfer from our float
    pocket to the seller shows the amount, the seller, and the time. It lands
    seconds after your pool payment, so time can pair the two.
  • Another facilitator sees its last step. The seller's own facilitator
    settles the transfer from our float pocket. It sees our pocket, the
    seller, the amount, and the time, as the chain does.
  • Your own traces. A keyed RPC URL names you. The timing of your
    requests links them. Everything you sign on chain is public.

Keys, audits, and limits:

  • The production keys of the main shielded pool came from a
    single-operator offline setup. No multi-party ceremony has run.
  • No independent audit of the circuits, the verifiers, or the binding has
    run.
  • Do not expect a cold wallet to settle at once: on 2026-09-23 a payment
    took 1.5 to 4 minutes.
  • A new deposit pays after the next pool anchor (about every 30 s when the
    pool grew; 12 of 12 within 45 s in our test on 2026-10-11). So a balance
    from several deposits can need one extra step and one anchor wait before a
    large payment.
  • Float pay needs our float to hold enough. When it is busy or being filled,
    the wallet refuses before it pays (p03_float_busy_retry_later,
    p03_float_not_ready_retry_later); try again later.

Copyright

Each wallet file comes with this notice (LICENSE.txt beside the file):

Shinjuku Shielded wallet
Copyright (c) 2026 Shinjuku Shielded. All rights reserved.

The open-source packages inside this file keep their own licenses: see
THIRD_PARTY_NOTICES.txt.

THIRD_PARTY_NOTICES.txt beside each release lists every open-source
component inside the file, with its license text. One of them,
rpc-websockets, is under LGPL-3.0-only.

Security

See SECURITY.md.

Yorumlar (0)

Sonuc bulunamadi