ShijimaDocs
Open app
Architecture

System overview

A website that holds no key, one worker that holds the operator key, Postgres between them, and a contract per owner on Robinhood Chain.

Reviewed 2026-09-26
System map

Where each part runs

The website only reads and writes requests. The worker holds the operator key and is the only part that sends a transaction.

Shijima
COOLIFY SERVERROBINHOOD CHAIN · 4663You + your walletany browser walletor WalletConnectRelayBase · ArbitrumEthereum · BNB ChainTelegramstatus · alertsapprovalsOpenServagent 4513hourly workflowSERV Reasoningone timing questionWeb appNext.js 16holds no keyPostgres 16records · requestsoutbox · money movesWorkerengine · write-ahead senderOpenServ agentTelegram bot · gift senderholds the operator keyDeskFactoryone clone per ownerYour Desk contractyour money · your limitspays only youUniswap v3one pinned pool per tokenChainlink feedsprice floor: 8% bandMorpho vaultSteakhouse USDG, idle cashreadscreate your agentfund · withdrawUSDG from other chainsrequestsrecords · resultshourly taskwhen?messagestrades · seals
Solid arrows do something or write something. Dashed arrows only read. Money never passes through the website or the worker: it moves between your wallet, your own agent account and the pools.
Read it as text
  1. You + your wallet Web app: reads (reads or only asks)
  2. You + your wallet DeskFactory: create your agent (does or writes)
  3. You + your wallet Your Desk contract: fund · withdraw (money moves)
  4. You + your wallet Relay (money moves)
  5. Relay Your Desk contract: USDG from other chains (money moves)
  6. Web app Postgres 16: requests (does or writes)
  7. Worker Postgres 16: records · results (does or writes)
  8. OpenServ Worker: hourly task (does or writes)
  9. Worker SERV Reasoning: when? (does or writes)
  10. Worker Telegram: messages (does or writes)
  11. Worker Your Desk contract: trades · seals (does or writes)
  12. Your Desk contract Uniswap v3 (does or writes)
  13. Your Desk contract Chainlink feeds (reads or only asks)
  14. Your Desk contract Morpho vault (money moves)

Where each part runs

Shijima
COOLIFY SERVERROBINHOOD CHAIN · 4663You + your walletany browser walletor WalletConnectRelayBase · ArbitrumEthereum · BNB ChainTelegramstatus · alertsapprovalsOpenServagent 4513hourly workflowSERV Reasoningone timing questionWeb appNext.js 16holds no keyPostgres 16records · requestsoutbox · money movesWorkerengine · write-ahead senderOpenServ agentTelegram bot · gift senderholds the operator keyDeskFactoryone clone per ownerYour Desk contractyour money · your limitspays only youUniswap v3one pinned pool per tokenChainlink feedsprice floor: 8% bandMorpho vaultSteakhouse USDG, idle cashreadscreate your agentfund · withdrawUSDG from other chainsrequestsrecords · resultshourly taskwhen?messagestrades · seals

Solid arrows do something or write something. Dashed arrows only read. Money never passes through the website or the worker: it moves between your wallet, your own agent account and the pools.

The parts

PartRuns onWhat it doesHolds a key?
Web appCoolify, Next.js 16Sign-in, every screen, requests into the database. Builds the transactions you sign.No. It cannot move money even if it is broken into.
Postgres 16Coolify, internal onlyAgents, mandates, the record, approvals, chat, the Telegram outbox, money moves.No
WorkerCoolify, one Node 24 processThe clock, the engine, the write-ahead sender, the OpenServ agent, the Telegram bot, the chat, the gift sender.Yes: the operator key, and the gift wallet's key
DeskFactoryRobinhood ChainCreates one agent contract per owner, as a minimal clone.No admin
Desk (your agent)Robinhood ChainHolds your money. Enforces your limits. Pays only you.Owned by your wallet
Uniswap v3Robinhood ChainThe pools every trade goes through, one pinned pool per token.
Chainlink feedsRobinhood ChainThe price your contract checks every trade against.
Morpho vaultRobinhood ChainSteakhouse USDG, where idle cash earns.
Relayacross chainsBrings money in from Base, Arbitrum, Ethereum and BNB Chain, and out.
SERV ReasoningOpenServThe one timing question, and the chat.
TelegramTelegramStatus, alerts and approvals, through Shijima's own bot.

Two rules the whole design follows

Only the worker acts for you. The website writes a request (an approval, a chat message, a “check now”) into Postgres. The worker picks it up within seconds and does the work. So the one process with a Shijima key is also the one process that decides. Transactions you make yourself, such as creating, funding or withdrawing, are built by the website and signed in your own wallet.

Money never passes through Shijima. It moves between your wallet, your own contract, the pools and the vault. Relay bridges go from your wallet to Relay's contracts directly. The worker's key can only ask your contract to trade inside your limits, and the output always lands back in your contract.

Money and exact numbers

Money is a whole number (bigint) in code and an exact decimal string in a record. A float would not hash the same way twice, and a record that cannot be re-hashed proves nothing. The limits check off the chain repeats the contract's own integer sums, rounding included, so the worker never sends a trade the chain will refuse.

Addresses

Chain
Robinhood Chain mainnet, id 4663 · RPC https://rpc.mainnet.chain.robinhood.com
Morpho vault, Steakhouse USDG
0xBeEff033F34C046626B8D0A041844C5d1A5409dd

The first version (v0, factory 0x35A4…0958) made the first real trades on 20 September and stays on the chain as history. The showcase agent moved to v1 on 22 September.

Next: one wake, step by step.

Source notes

This page was checked against the code on 2026-09-26. These are the files it follows.

On this page