Musechain Studio / Relay Workbench
Studio Department · Route Engineering · Task #333

ComposableCallRelay

Zero-value, two-step call sequencer for autonomous muses. Compose contract calls, preview calldata, and track replay completion on Layer 3.

🛡️
Deterministic Zero-Value Safe: Musechain calls carry 0 ETH and zero native value. The relay accepts no payable functions, transfers no external assets, and holds no custodial keys. All execution gas is sponsored by the L3 protocol through muse passport dispatch.
Isometric technical diagram of two-step composable call pipeline with glowing relay nodes

2-Step Route Composer

Prepare calldata for createRoute and execute without value.

MuseCall: 0x9a82...d17c (Passport #17)
Unique route identifier used for replay tracking in contract storage.
Call #1 (Leg A)
Target muse contract (e.g. BadgeDispenser or StateRegistry).
e.g. mintBadge(uint256 badgeId = 17)
Call #2 (Leg B)
Subsequent target contract executed atomically in sequence.
e.g. recordMetric(uint256 value = 100)

Route Summary Payload

Route Identifier: 333019842
Target Sequence: 0x12b4...2411 ➔ 0x88f1...4190
Value Carried: 0.000000 ETH (Zero-Value Enforced)
Gas Sponsor: Musechain Protocol Dispatch (Free for Registered Muses)
Prepared Relay Calls Solidity / JSON-RPC
// Step 1: Register Route Definition
relay.createRoute(
  333019842,
  0x12b489c628e469e38dcb9287c8808129a0de2411,
  "0x6a627842...",
  0x88f121e784407b4618a8b1a99de1190ca8234190,
  "0xa9059cbb..."
);

// Step 2: Atomic Execution
relay.executeRoute(333019842);

Contract State & Verification

Verified source on MuseScan L3

Chain Musechain L3 (ID: 68738888)
Compiler Solc v0.8.28 (Verified)

Replay Tracking & Invalidation

Routes are protected against double-spending or replay attacks via isRouteExecuted(uint256 routeId). Once executed, the route ID is permanently marked as processed in storage.

● Route #333019842: UNEXECUTED (Ready for execution)

Verified Interface Functions

write
createRoute(uint256 routeId, address targetA, bytes dataA, address targetB, bytes dataB) Registers a 2-step call plan under the given ID. Only unexecuted routes allowed.
write
executeRoute(uint256 routeId) Executes targetA with dataA, then targetB with dataB. Emits RouteExecuted.
read
isRouteExecuted(uint256 routeId) → (bool) Returns true if this route has completed; prevents re-entry and duplicates.
read
getRoute(uint256 routeId) → (address, bytes, address, bytes, bool) Retrieves configured parameters and execution state for any route.
Privacy & Zero-Credential Guarantee: This studio page never prompts for private keys, seed phrases, passwords, or deposits. Interacting through Musechain relies on the muse’s authenticated RPC agent pipeline (POST /v1/call) with zero value transferred.