Security model
Tayho assumes application, infrastructure, RPC, provider, and worker failures can occur independently. Correctness rests on narrow on-chain authorization, session-signed user intent, durable idempotent coordination, isolated signer roles, reorg-aware projection, and fail-closed readiness. This page indexes the operational model. The detailed contract analysis remains inpackages/contracts/SECURITY.md.
Assets and authorities
Public boundary
Only the frontend andtayho-api accept public application traffic. API controls enforce exact
body/path/query schemas, bounded JSON, CORS, trusted-proxy policy, API-key environment/status/expiry,
scope, origin/CIDR restrictions, and project/key/IP quotas.
API keys authorize access to Tayho services; wallets authorize economic actions. A publishable API
key never replaces a wallet signature. Receipt capabilities separately protect intent/action status
and protected realtime snapshots.
The API is signerless. It can compose indexed state, engine lifecycle, and live unsigned RPC reads,
but cannot broadcast or mutate accepted terms. It authenticates to the engine with a private
service credential and never exposes the engine publicly.
Signer roles
Engine and auditor reject signer configuration. API, indexer, and market-data are also signerless.
Owner and treasury remain distinct from every operational address.
Each active signing role uses exactly the reviewed role key pool across replicas. Runtime function
allowlists reject cross-role calls before simulation/broadcast, while contracts enforce final
authorization. PostgreSQL serializes signer selection, nonces, and same-nonce replacement lineage.
Key and credential classes
Resolved values, wallet lists, signed bytes, ciphertext, database URLs, private hostnames, and raw
audit payloads do not belong in Mintlify content or release evidence.
Datastore boundaries
PostgreSQL is the durable authority for coordination. Separate runtime, engine, relayer, auditor, API, indexer, and migration identities have table/column/RLS/default-grant boundaries. Only the migration job has schema-owner credentials. Redis/BullMQ can redeliver, lose locks, or be rebuilt. Stable outbox IDs, execution tokens, idempotency keys, current-state simulation, and legal database transitions make at-least-once delivery safe. Operators never repair correctness by deleting queue/database rows or resetting nonces. The indexer is the soleeth_getLogs owner. Its Ponder state handles ordering and reorg rollback.
The auditor consumes the private indexer projection for ordered evidence and independently checks
bounded current state through RPC quorum. API, engine, relayer, auditor, SDK, and all other workers
must not add log-range scanners.
RPC and provider assumptions
Wrong-chain, unavailable, stale, or disagreeing RPC origins fail readiness or the current decision. Signing roles use one preferred write endpoint and independent safety voters. The development single-origin exception is restricted to HyperEVM testnet chain 998 and never changes production majority requirements. Market-data replicas improve process availability but do not create source independence. Production funding and resolution require separately governed facts. Price-domain clamps, reserve backing, one-shot intervals, guardian pause, and auditor recomputation bound damage but cannot make a dishonest source truthful.Contract emergency paths
- Guardians pause/unpause only within their narrow authority.
- Owner/governance manages markets, bounded parameters, roles, and emergency configuration; it is deliberately not an operational worker.
- Exits remain available when stale funding blocks new exposure.
- OCO, nonce bitmaps, session limits, deadlines, Permit2 bounds, and receipt/cancellation races are enforced at contract and signed-message boundaries.
- Queue, API, or relayer pause must preserve status reads, transaction reconciliation, and recovery evidence.
Review and launch evidence
Production launch requires:- exact reviewed commit and immutable image/provenance/SBOM identity;
- contract static, fuzz, invariant, symbolic, and independent review evidence;
- operational independent review of actual deployed grants/topology;
- 24-hour injected-failure qualification and datastore restore/rebuild drills;
- signer, intent-key, journal-key, API-key, and database credential rotation evidence;
- RPC partition, reorg, queue/idempotency, and unauthorized-write probes; and
- named operations, security, protocol, and incident-owner approval.