{"id":51542797,"url":"https://github.com/tradingstrategy-ai/open-multisig-hl","last_synced_at":"2026-07-09T15:30:22.452Z","repository":{"id":350219097,"uuid":"1205799919","full_name":"tradingstrategy-ai/open-multisig-hl","owner":"tradingstrategy-ai","description":"Open-source Hyperliquid multisig signer UI — sign EIP-712 typed data with Rabby or MetaMask for all Hyperliquid multisig operations","archived":false,"fork":false,"pushed_at":"2026-06-17T16:28:49.000Z","size":1003,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-17T18:18:33.368Z","etag":null,"topics":["evm","hyperliquid","svelte","viem"],"latest_commit_sha":null,"homepage":"https://tradingstrategy.ai/","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tradingstrategy-ai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-09T09:37:42.000Z","updated_at":"2026-05-05T09:57:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tradingstrategy-ai/open-multisig-hl","commit_stats":null,"previous_names":["tradingstrategy-ai/open-multisig-hl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tradingstrategy-ai/open-multisig-hl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradingstrategy-ai%2Fopen-multisig-hl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradingstrategy-ai%2Fopen-multisig-hl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradingstrategy-ai%2Fopen-multisig-hl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradingstrategy-ai%2Fopen-multisig-hl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tradingstrategy-ai","download_url":"https://codeload.github.com/tradingstrategy-ai/open-multisig-hl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradingstrategy-ai%2Fopen-multisig-hl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35304874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-09T02:00:07.329Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["evm","hyperliquid","svelte","viem"],"created_at":"2026-07-09T15:30:21.826Z","updated_at":"2026-07-09T15:30:22.446Z","avatar_url":"https://github.com/tradingstrategy-ai.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Open Hyperliquid Multisigner\n\nThis application a web user interface for Hyperliquid native multisignature wallets, also known as Hypercore multisig.\n\n# Benefits\n\n- Built for security\n- Supports popular wallets like Keystone (recommended hardware wallet), Ledger, Rabby, Metamask\n- Run locally\n- Open source\n- Free\n- Brutal\n\n![alt text](image.png)\n\n# Beta warning\n\n- Limited functionality. The software supports only certain actions, but new actions are easy to add.\n\n# Requirements\n\n- Basic understanding of running local JavaScript applications from Git\n- `pnpm`\n\n# Run\n\nCopy `.env.example` to `.env` and set `TS_PUBLIC_WALLET_CONNECT_PROJECT_ID` to a free project ID from [cloud.reown.com](https://cloud.reown.com). Without it the WalletConnect (mobile wallet) flow is disabled — desktop browser extensions still work.\n\n```shell\ncp .env.example .env\n# edit .env\npnpm install\npnpm run dev\n```\n\nThen go to:\n\nhttp://localhost:5173/\n\n# Usage\n\n1. One of the multisignature participants creates the value you need to sign\n2. They communicate them to others - you can copy-paste the UR:\n3. Others connect their wallet and verify values\n4. Everyone presses sign\n\nAll signers must sign the exact same payload. Coordinate nonce values before signing. Changing any field invalidates previously collected signatures..\n\n# Multisignature and agents\n\nOn Hyperliquid, an **agent** (also called an \"API wallet\") is a secondary signing key that has been delegated authority by a master account to sign a subset of actions on its behalf. Agents exist so that bots, trading software, and automated strategies can place orders and manage positions without exposing the master account's private key.\n\nDelegation happens on-chain via the `ApproveAgent` action:\n\n1. The **master account** (regular wallet or multisig) signs an `ApproveAgent` payload that names an agent address. The master account can also give the agent a human-readable name at approval time.\n2. Once approved, the **agent wallet** can sign L1 actions (orders, cancels, vault transfers, sub-account transfers, etc.) on behalf of the master account.\n3. Agents **cannot** move user funds off Hyperliquid — actions like `withdraw` and `usdSend` still require a direct signature from the master account (or, in the multisig case, the full set of multisig signers).\n4. An agent's signing authority can be revoked at any time by approving a different agent with the same name (which prunes the previous one) or by approving a new unnamed agent (which prunes any existing unnamed agent).\n\n**Why this matters for multisig.** Collecting signatures from every multisig participant for every single order is impractical for active trading. Instead, the multisig collectively signs a single `ApproveAgent` action once, delegating day-to-day trading to an agent wallet. From that point on, the agent can place orders and cancel them unilaterally, while anything that moves funds out of the multisig (withdrawals, transfers) still requires the full multisig quorum.\n\nOpen Hyperliquid Multisigner supports both sides of this flow:\n\n- `Approve Agent` — the multisig-coordinated action that authorises an agent wallet\n- `Withdraw`, `USD Send`, `Spot Send`, `USD Class Transfer`, `Token Delegate`, `Convert to MultiSig` — the fund-moving actions that always require the full multisig quorum\n- L1 actions (`Place Order`, `Cancel Order`, `Vault Transfer`, `Sub-Account Transfer`, etc.) — signable either by the multisig quorum or, once delegation is set up, by the approved agent directly\n\n`Create Vault` is also an L1 action in the Hyperliquid protocol. It must use\nthe same `Exchange` / `Agent` signing family as orders and vault transfers, not\nthe user-signed `HyperliquidTransaction:*` family used by `Approve Agent`.\nBrowser wallets may still sign an invented user-signed `Create Vault` payload,\nbut Hyperliquid rejects those signatures as `Invalid multi-sig inner signer`.\nVault deposits/withdrawals (`Vault Transfer`) and sub-account transfers are in\nthat same L1 family.\nSee [docs/hyperliquid-signing.md](docs/hyperliquid-signing.md) before changing\nany action's signing mode.\n\nFor the canonical protocol reference, see the Hyperliquid documentation on [nonces and API wallets](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/nonces-and-api-wallets).\n\n# How to create Hyperliquid native multisignature wallet\n\nTODO\n\n# Architecture\n\n- Built with Svelte and Viem\n\n# Secret scanning\n\nThis repo runs [gitleaks](https://github.com/gitleaks/gitleaks) on every PR and push to `main` ([.github/workflows/secret-scan.yml](.github/workflows/secret-scan.yml)) — that check is the source of truth and cannot be bypassed by `git commit --no-verify`.\n\nFor faster local feedback, [husky](https://typicode.github.io/husky) wires the same scan into a pre-commit hook ([.husky/pre-commit](.husky/pre-commit)). It runs automatically after `pnpm install` if `gitleaks` is present on your `PATH`. Install locally with:\n\n```shell\nbrew install gitleaks   # macOS\n# or see https://github.com/gitleaks/gitleaks#installing\n```\n\nIf gitleaks isn't installed, the hook prints a warning and exits cleanly — the CI scan still catches anything missed locally. Project-specific allowlist entries live in [.gitleaks.toml](.gitleaks.toml).\n\n# Support\n\n- [Join Discord for any questions](https://tradingstrategy.ai/community).\n\n# Social media\n\n- [Watch tutorials on YouTube](https://www.youtube.com/@tradingstrategyprotocol)\n- [Follow on Twitter](https://twitter.com/TradingProtocol)\n- [Follow on Telegram](https://t.me/trading_protocol)\n- [Follow on LinkedIn](https://www.linkedin.com/company/trading-strategy/)\n\n# License\n\nMIT.\n\n[Created by Trading Strategy](https://tradingstrategy.ai).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftradingstrategy-ai%2Fopen-multisig-hl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftradingstrategy-ai%2Fopen-multisig-hl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftradingstrategy-ai%2Fopen-multisig-hl/lists"}