SDK ↔ API mapping
Two services back the SDK:- Relayer at
https://relayer.tachyon.pe, API reference - TWAP service at
https://twap.tachyon.pe, API reference
| SDK call | Service endpoint | Status |
|---|---|---|
tachyon.health() | Relayer GET /health | ✅ Live |
tachyon.user.register(addr, sig) | Relayer POST /recipient/register | ✅ Live |
tachyon.user.listStealthAddresses(addr, sig) | Relayer GET /recipient/addresses | ✅ Live |
tachyon.user.deriveStealthKey(addr, stealthAddr, sig) | Relayer POST /recipient/derive-stealth-key | ✅ Live |
tachyon.user.deploySafe(stealthAddr, sig, chainId) | Relayer POST /recipient/deploy-safe | ✅ Live |
tachyon.recipient.relay(safeAddr, txParams, sig) | Relayer POST /recipient/relay-proxy | ✅ Live |
tachyon.intent.storeRecipients(intentId, encrypted) | Relayer POST /store-recipients | ✅ Live |
tachyon.intent.status(intentId) | Relayer GET /intent-details/:intentId | ✅ Live |
tachyon.intent.verify(intentId, network, sourceChainId) | Relayer POST /verify | ✅ Live |
tachyon.intent.settle(...) | Relayer POST /settle | ✅ Live (solver/relayer use) |
tachyon.routes.list(filter) | Relayer POST /get-routes | ✅ Live |
tachyon.twap.getECIESPubKey() | TWAP GET /ecies-pubkey | ✅ Live |
tachyon.twap.getAddress() | TWAP GET /address | ✅ Live |
tachyon.twap.create(encrypted, sig, msg) | TWAP POST /orders | ✅ Live (raw API) |
tachyon.twap.status(orderId) | TWAP GET /orders/:orderId | ✅ Live |
tachyon.twap.list(user) | TWAP GET /orders?user= | ✅ Live |
tachyon.twap.cancel(orderId, sig, msg) | TWAP POST /orders/:orderId/cancel | ✅ Live |
tachyon.intent.submit(params, wallet) | BridgeIntentV2.createIntent + Relayer POST /store-recipients (combined) | 🟡 SDK convenience over the two-step flow |
tachyon.intent.createOnChain(params, wallet) | BridgeIntentV2.createIntent (on-chain only) | 🟡 Wrapper around contract call |
tachyon.intent.subscribe(intentId, handler) | Polls Relayer GET /intent-details/:intentId | 🟡 Polling shim until webhooks ship |
tachyon.intent.submitBatch(signedBatch) | Loops intent.submit (today) | 🔴 Planned as atomic batch |
tachyon.twap.buildAndSubmit(params) | SDK wraps encrypt + sign + POST /orders | 🔴 Planned SDK helper |
tachyon.user.exportRecord(opts) | (viewing-key export) | 🔴 Planned |
tachyon.webhooks.register(opts) | (webhook delivery) | 🔴 Planned |
Initialization
HealthResponse shape matches GET /health (API ref).
User & viewing key
WIP. Selective-disclosure exports (
exportRecord, exportRecords) are planned. Today, derive the stealth key via deriveStealthKey and produce a record client-side using the keys.Intent, single
submit does both halves of the real two-step flow:
- Signs and sends
BridgeIntentV2.createIntentwith the public fields (tokenIn,tokenOut,amountIn,minAmountOut,reward,destChainId,auctionDuration) - Fetches the relayer’s ECIES public key, encrypts
{ recipients, amounts }, and posts toPOST /store-recipients
status polls GET /intent-details/:intentId. subscribe is a polling helper (default 3 s) until webhooks ship.
The lower-level variants are exposed for integrations that only need one half:
Intent, batch (planned)
Planned. Today, payroll loops
submit over each contributor.TWAP
Base URL:https://twap.tachyon.pe. See the full TWAP API reference for request/response shapes.
create, cancel) are available today over HTTP. The buildAndSubmit helper is a planned SDK convenience.
Recipient
relay wraps POST /recipient/relay-proxy for gasless sweeps/spends from a stealth Safe. listIncoming is a convenience over GET /recipient/addresses plus per-address chain queries.
Routes & solvers
POST /get-routes. Returns supported chain pairs and registered solvers.
Webhooks (planned)
Planned. Until webhooks ship, poll
GET /intent-details/:intentId (typically every 2–5 seconds while an intent is live).Types
Relayer HTTP API
Intent lifecycle, stealth addresses, sweeps.
TWAP HTTP API
TWAP order creation, status, cancellation.