ADDRESS_TYPE_ETHEREUM
. This address format is valid across all EVM chains and L2s.
createAccount
method to create a Turnkey-powered custom account which Viem can use seamlessly.TurnkeySigner
which implements Ethers’ AbstractSigner
interface. See Ethers docs.EthereumTransaction
struct in our policy language page for a full list.
As a bonus, Turnkey also takes care of combining the signature with the original payload if you use the SIGN_TRANSACTION
activity types: the input is the unsigned payload (RLP encoded), and the output is the signed RLP encoded transaction, ready to be broadcast!
Additionally, Turnkey supports signing operations over EIP-712 Typed Data payloads, with an accompanying eth.eip_712
namespace in our policy engine that can be used for gatekeeping. Additional details can be found here.
legacy, EIP-2930 (Type 1), EIP-1559 (Type 2), EIP-4844 (Type 3), EIP-7702 (Type 4)
. These transactions will get parsed by our transaction parser, and are compatible with our policy engine.
SignTransaction
endpoint to parse and sign Type 3 transactions, which conform to the EIP-4844 standard.
We’ve also added Type 3 support to our policy engine by including the parameter max_fee_per_blob_gas
. More details about our policy engine language can be found here, and an example demonstrating how to use @turnkey/viem
to sign Type 3 transactions can be found here.
Note: for Type 3 transactions, we are specifically handling parsing for payloads containing only the transaction payload body, without any wrappers around blobs, commitments, or proofs.
Accepted: tx_payload_body
, defined as: rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, to, value, data, access_list, max_fee_per_blob_gas, blob_versioned_hashes, y_parity, r, s])
Rejected: rlp([tx_payload_body, blobs, commitments, proofs])
rlp([tx_payload_body, blobs, commitments, proofs])
are not transactions, they’re messages which are part of the gossip protocol to persist blobs on the beacon chain. In other words, they’re not meant to be signed: the signatures / integrity is taken care of with the signed commitments & proofs inside of these messages.SignRawPayload
endpoint to sign payloads encoded as EIP-712 Typed Data, while also writing Policy Conditions which directly reference the attributes of this Typed Data.
This can be used to support integrations involving Hyperliquid, ERC-2612 Permits, or ERC-3009 Transfers, among many others.
SDK examples demonstrating the signing side of the above-mentioned integrations can be found below:
ethers
:
viem
: