Bind the sub-account to a PartyB
Symmio core's sendQuote usually runs a Muon signature check on a SingleUpnlAndPriceSig parameter, unless the trading account is bound to a specific PartyB, in which case the check is skipped. The solver's instant-trade flow ships an empty upnlSig placeholder in the calldata it sends on-chain (it has no way to inject a fresh Muon sig into the EIP-712 op you signed), so without a bind your executeTemplate call reverts on-chain with "LibMuon: Expired signature". That surfaces on the notifications feed as SendQuoteTransaction / action_status = failed / error_code = 2000.
Binding fixes this permanently for the sub-account. It pins the sub-account to the deployment's hedger and tells the core "I'm not using Muon oracles for this account; trust the PartyB."
Signed by. Owner EOA. The call goes to the AccountLayer's _call(account, callDatas[]), because bindToPartyB lives on the Symmio core and the core needs to see the sub-account as msg.sender. _call is the AccountLayer's mechanism for forwarding calls with the right signer context.
Calldata to encode for the inner call:
selector = 0xcf462cb2 // bindToPartyB(address)
arguments = abi.encode(address: hedger)So the actual outer call is:
AccountLayer._call(
account = subAccount,
callDatas = [ 0xcf462cb2 || abi.encode(hedger) ]
)After it lands, sanity-check by reading Symmio.getBindState(subAccount): status == 1 means bound. Once done, leave it alone. There's a requestToUnbindFromPartyB flow with a cooldown if you ever need to switch solvers, but you almost never will.
Last updated

