Skip to main content

Deploy a contract

Fenryx's EVM is standard — anything that works on Ethereum mainnet will deploy unchanged. The interesting part is calling native modules from inside Solidity.

1. Toolchain

npm i -g hardhat
# or
cargo install foundry --locked

hardhat.config.ts:

networks: {
fenryx: {
url: 'https://v2.evm.fenryx.io',
chainId: 7373,
accounts: [process.env.PRIVKEY!],
},
}

2. Deploy

npx hardhat run scripts/deploy.ts --network fenryx

The transaction will appear in the explorer within ~1 block.

3. Call native modules

import "@fenryxlabs/contracts/IFenryx.sol";

contract MyVault {
IFenryx constant fenryx = IFenryx(0x0000000000000000000000000000000000007373);

function stake(address validator, uint256 amount) external {
require(fenryx.didLevel(msg.sender) >= 2, "L2 DID required");
fenryx.stake(validator, amount);
}
}

4. Verify

The ABI Decoder page can decode an eth_call blob against your ABI JSON — useful while iterating on a function selector.