A service providing threshold signature scheme (TSS) operations for vaults. Works with Vultisig Plugins to process and sign blockchain transactions.
- Vault management (create, retrieve, manage)
- TSS operations with DKLS
- Transaction processing
- Policy enforcement
- Asynchronous processing
- Core Components: API server, Worker service, PostgreSQL/Redis storage
- Integration: Receives transactions from Plugins, processes them securely
- Security Model: Plugins handle business logic; Verifier manages cryptographic operations
- Go 1.24.2+, PostgreSQL 14+, Redis 6+, Docker
# create a shared network for docker containers
docker network create shared_network
# start verifier and worker in docker compose
make up
# seed the postgres database with initial data
make seed-dbTo debug Docker containers in GoLand with breakpoints, refer to this article.
For convenient usage of debug breakpoints in GoLand, you can start only infra/db with Docker, and backend services outside Docker. Configs shared in .run directory, all envs already configured correctly. It will run:
- Verifier Server (don't forget to set
http://localhost:8081instead ofhttp://payroll-server:8080inpluginstable); - Verifier Worker;
- Tx Indexer Worker;
- Plugins Frontend;
How to install dev version of Chrome extension from desired branch:
- Clone vultisig-windows repo and checkout to desired branch;
yarn installto install deps;yarn run build:extensionto build Chrome extension files;- Open Chrome and load extension there:
- Open
chrome://extensions; - Click
Developer modetoggle at top-right; - Click
Load unpacked; - Select
vultisig-windows/clients/extension/distfolder; - Now you'll see Vultisig Extension at the extensions list;
- Open
To switch branch or update it: rebuild code and click Reload button near Vultisig Extension at the extensions list — Chrome would reload files from the same path;
You can configure the verifier and worker by modifying the following files:
verifier.example.jsonworker.example.jsontx_indexer.example
These files define settings for:
- Server (port, host)
- Database connection
- Redis connection
- Storage options (S3 or local)
- TSS parameters
Each service uses its corresponding example file as the default config.json in both production and development Docker configurations..
Authentication: /auth (POST), /auth/refresh (POST)
Vault Management:
- Reshare:
/vault/reshare(POST) - Get:
/vault/get/:pubKey(GET) - Check:
/vault/exist/:pubKey(GET)
Signing:
- Sign:
/vault/sign(POST) - Get results:
/vault/sign/response/:id(GET)
Transactions:
- Create:
/sync/transaction(POST) - Update:
/sync/transaction(PUT)
Key directories:
/cmd- Entry points (verifier, worker)/internal- Core implementation (API, services, storage)/types- Data structures/vault- Vault storage implementations
Testing:
# Unit tests
go test ./[path]/...
# Plugin integration tests
make test-integration # Run all testsSee LICENSE file for terms.

