https://github.com/hyperledger/firefly-evmconnect
Firefly EVM Connect
https://github.com/hyperledger/firefly-evmconnect
Last synced: 3 months ago
JSON representation
Firefly EVM Connect
- Host: GitHub
- URL: https://github.com/hyperledger/firefly-evmconnect
- Owner: hyperledger
- License: apache-2.0
- Created: 2022-05-23T22:43:21.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2026-02-02T21:33:18.000Z (3 months ago)
- Last Synced: 2026-02-03T10:47:38.524Z (3 months ago)
- Language: Go
- Homepage: https://github.com/hyperledger/firefly-evmconnect
- Size: 1 MB
- Stars: 16
- Watchers: 13
- Forks: 20
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
- Maintainers: MAINTAINERS.md
Awesome Lists containing this project
README
[](https://codecov.io/gh/hyperledger/firefly-evmconnect)
[](https://pkg.go.dev/github.com/hyperledger/firefly-evmconnect)
# Hyperledger FireFly EVM Connector
This repo provides a reference implementation of the FireFly Connector API (FFCAPI)
for EVM Based blockchains.
See the [Hyperledger Firefly Documentation](https://hyperledger.github.io/firefly/latest/overview/public_vs_permissioned/#firefly-architecture-for-public-chains)
and the [FireFly Transaction Manager](https://github.com/hyperledger/firefly-transaction-manager) repository for
more information.
> Also see [firefly-ethconnect](https://github.com/hyperledger/firefly-ethconnect) for the hardened
> connector optimized for private Ethereum sidechains, optimized for finality assured consensus
> algorithms and throughput.
# License
Apache 2.0
## ABI Encoding
A key responsibility of the FFCAPI connector is to map from developer friendly JSON inputs/outputs
down to the binary encoding of the blockchain.
This repo uses the Apache 2.0 RLP encoding/decoding utilities from the
[firefly-signer](https://github.com/hyperledger/firefly-signer) repository.
## Configuration
For a full list of configuration options see [config.md](./config.md)
## Example configuration
```yaml
connectors:
- type: ethereum
server:
port: 5102
ethereum:
url: http://localhost:8545
```
## Blockchain node compatibility
For EVM connector to function properly, you should check the blockchain node supports the following JSON-RPC Methods over HTTP:
### Event tracking
- `eth_blockNumber`
- `eth_newBlockFilter`
- `eth_getFilterLogs`
- `eth_getFilterChanges`
- `eth_getBlockByHash`
- `eth_getLogs`
- `eth_newFilter`
- `eth_uninstallFilter`
- `eth_getTransactionByHash`
- `eth_getTransactionReceipt`
### Query
- `eth_call`
- `eth_getBalance`
- `eth_gasPrice`[^1]
### Transaction submission
- `eth_estimateGas`
- `eth_sendTransaction`
- `eth_getTransactionCount`
- `eth_sendRawTransaction`[^2]
[^1]: also used by Transaction submission if the handler is configured to get gas price using "connector".
[^2]: only required by custom transaction handlers that supports pre-signing.