Arbitrum Rollup supports EVM transactions, and therefore allows you to trustlessly deploy Solidity contracts (as well as Vyper or any other language that compile to EVM). Arbitrum supports almost all Solidity code as expected with a few exceptions that we detail below.
Differences from Solidity on Ethereum
Although Arbitrum supports Solidity code, there are differences in the effects of a few operations, including language features that don't make much sense in the Layer 2 context.
tx.gaspricewill return 1
blockhash(x)will always return zero
block.coinbasewill return zero
block.difficultywill return the constant 2500000000000000
block.gaslimitwill return the constant 10000000000
gasleftwill return the amount of ArbGas remaining
block.timestamp. For the semantics of these features in the Arbitrum context, please see Time in Arbitrum.