Development Framework Integration

Seamless Integration with Development Frameworks

Phalcon Fork can be integrated with popular development frameworks.

Get Necessary IDs

The first step is getting the API access key (FORK_API_ACCESSS_KEY), the Fork RPC ID (FORK_RPC_ID) and FORK_ID. The API access key is obtained in the Account Settings.

The FORK_RPC_ID and FORK_ID can be obtained inside a Fork (or retrieved from the response of REST APIs).

Hardhat

Add the Phalcon network to hardhat.config.js, by placing the fork's RPC in the URL.

require("@nomicfoundation/hardhat-toolbox");

/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
  networks: {
    hardhat: {
    },
    goerli: {
      url: "https://eth-goerli.alchemyapi.io/v2/${YOUR_KEY}",
      accounts: ['${PRIVATE_KEY}']
    },
    phalcon: {
      url: "https://rpc.phalcon.xyz/FORK_RPC_ID",
      accounts: ['${PRIVATE_KEY}']
    }
  },
  solidity: "0.8.17",
};

When executing the deployment scripts, specify the network as phalcon, for example:

npx hardhat run scripts/deploy.js --network phalcon

Foundry

Phalcon Fork can be easily integrated into Foundry.

  • Using rpc-url parameter

forge create  --rpc-url [FORK_RPC] --private-key %private-key% src/Contract.sol:TokenSwap
  • Add eth_rpc_url to the foundry.toml.

When executing without specifying an rpc-url, it will use Fork by default.

eth_rpc_url = [FORK_RPC]    
  • Add Phalcon Fork to the rpc_endpoints section in foundry.toml

[rpc_endpoints]
phalcon = [FORK_RPC]

When executing, use Fork by specifying the rpc-url.

forge create --rpc-url phalcon --private-key %private-key% src/Contract.sol:TokenSwap

If you encounter the "nonce too high" message, please add "--slow" option to the command line.

--slow:Makes sure a transaction is sent only after its previous one has been confirmed and succeeded.

Remix

  • Sign the transaction in MetaMask, and check the network to ensure it is being executed on the Fork

  • View the transaction in MetaMask and wait for the status change from Pending to Confirmed.

  • Check the transaction execution details in Phalcon Explorer.

Or use the transaction list in the Phalcon Panel to see the simulated transaction.

Truffle

Add the Phalcon network to truffle-config.js, by placing the fork's RPC in the URL.

networks: {
    phalcon: {
      provider: () => new HDWalletProvider([privateKey], 'https://rpc.phalcon.xyz/rpc_402xxxxb27cf'),
      network_id: "*", // Match any network id
      gas: 5500000, // Gas limit
      confirmations: 0, //number of confirmations to wait between deployments
      timeoutBlocks: 200,
      skipDryRun: true
    },
  },

Please note that confirmations must be set to 0 when using Phalcon.

When executing the deployment scripts, specify the network as phalcon, for example:

truffle deploy --network phalcon

MetaMask

Please refer to this manual to see how to add a Fork into MetaMask.

Last updated