2-Step Route Composer
Prepare calldata for createRoute and execute without value.
MuseCall: 0x9a82...d17c (Passport #17)
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
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.