Glossary
Crosschain
Crosschain API - Lamina’s forward-facing API interface. Protocols talk to the Crosschain API by sending transaction calldata and target information (chain, address, cost). Crosschain does the heavy lifting on the backend, wrapping userops and calculating the overall transaction cost, then returns data for the protocol to sign before forwarding said signed data as a blob to the Crosschain Client.
// UserOp Operation Structure:
type UserOperation struct {
Sender string `json:"sender"`
Nonce string `json:"nonce"`
InitCode string `json:"initCode"`
CallData string `json:"callData"`
CallGasLimit string `json:"callGasLimit"`
VerificationGasLimit string `json:"verificationGasLimit"`
PreVerificationGas string `json:"preVerificationGas"`
MaxFeePerGas string `json:"maxFeePerGas"`
MaxPritorityFeePerGas string `json:"maxPriorityFeePerGas"`
PaymasterAndData string `json:"paymasterAndData"`
Signature string `json:"signature"`
}
// Execution Data Structure:
type ExecutionData struct {
DestinationChain string `json:"destinationChain"`
TargetAddress string `json:"targetAddress"`
Asset string `json:"asset"`
Amount string `json:"amount"`
Calldata string `json:"calldata"`
}
// Protocol's Request Transaction Format:
type RequestTransaction struct {
Signer string `json:"signer"`
ExecutionRequest ExecutionData `json:"executionRequest"`
}
// Protocol's Request Transaction Response
// (calldata and userop are to be signed):
type RequestTransactionResponse struct {
Signer string `json:"signer"`
Escrow string `json:"escrow"`
Deadline string `json:"deadline"`
Calldata string `json:"calldata"`
UserOp UserOperation `json:"userop"`
}
// Protocol's Signed Format:
type SubmitTransaction struct {
Signer string `json:"signer"`
Escrow string `json:"escrow"`
Deadline string `json:"deadline"`
Calldata string `json:"calldata"`
Signature string `json:"signature"`
Hash string `json:"hash"`
UserOp UserOperation `json:"userop"`
}Crosschain Client - Lamina's backend infrastructure responsible for lock request execution and userop validation. This client currently comprises of a private bundler and relayer but is expected to scale by offering a reward-based model to bring new bundlers and relayers into the fold.
Crosschain Mempool - Lamina’s Crosschain Mempool is a currently a private mempool with custom blobs of data. These blobs include a proposed bid, execution cost, and userop. Solvers digest these blobs and execute an array of userops on the destination chain’s ERC4337 EntryPoint contract.
Crosschain Paymaster - Lamina's userop paymaster. During preOp the paymaster validates the userop and digests the paymasterAndData field. Then constructs the Hyperlane message for later authentication on the origin chain. Extra data from the paymasterAndData field will be appended with the Solver's address. During postOp the paymaster will pay for the Hyperlane IGP and redeposit used funds to it's own stake and send residual funds back to the Solver.
Hyperlane
Hyperlane Mailbox - The mailbox, for Hyperlane messages, acts as either the receiver contract on destination chains, or the sender contract on origin chains. Hyperlane messages transmitted or received include: target chain, target address, value, and message. When a valid message received on the origin chain it will be added to the Hyperlane network with a pending state until payment is accepted by the Hyperlane IGP. When a valid message is received on the destination chain it will use the message data to call the target contract. Learn more here.
Hyperlane IGP (Interchain Gas Paymaster) - The gas paymaster estimates this native currency cost required to process the submitted Hyperlane message. The gas requirements must be quoted after the Hyperlane message is submitted. Crosschain Paymaster quotes the cost of a Hyperlane message during preOp and submits payment during postOp. This approach ensures that the Hyperlane message is triggered only if the userop is executed successfully. Learn more here.
Hyperlane Validator - The Hyperlane network on any chain includes a series of validators that process transactions on destination chains. Learn more here.
Hyperlane Handler - The handle function on the target contract accepting a message from the Hyperlane Mailbox on the destination chain. Learn more here.
Escrow
Escrow - Every signer has a create2 escrow address. The Escrow is a lightweight ERC1967 proxy that supports tracking of any lock or unlocked token. Only the signers locked funds are used for paying solvers. When receiving a Hyperlane message to handle it will validate and then execute the Solver payout.
Escrow Factory - Factory contract for initializing a signer’s ERC1967 Escrow.
Copy
Escrow Simpleton - Escrow current logic contract deployment.
Last updated