Career upgrade: Learn practical AI skills for better jobs and higher pay.
Level up
All Practice Exams

100+ Free CHFD Practice Questions

Pass your Certified Hyperledger Fabric Developer (CHFD) exam on the first try — instant access, no signup required.

✓ No registration✓ No credit card✓ No hidden fees✓ Start practicing immediately
100+ Questions
100% Free
1 / 100
Question 1
Score: 0/0

Which command displays the chaincode definitions currently committed on a channel?

A
B
C
D
to track
2026 Statistics

Key Facts: CHFD Exam

120 min

Time Limit

Linux Foundation

Performance

Exam Format

Web IDE and command line

Node.js

Language

CHFD curriculum

v2.2 LTS

Fabric Version

CHFD curriculum

3 years

Validity

Linux Foundation

12 months

Eligibility Window

Candidate handbook

CHFD is a 2-hour, online proctored, performance-based exam that tests Hyperledger Fabric v2.2 LTS development with Node.js. Official domain weights are Identity Management (7%), Network Configuration (8%), Smart Contract Development (40%), Smart Contract Invocation (25%), and Maintenance and Testing (20%). Certification is valid for 3 years, includes one free retake, and carries a 12-month eligibility window. Candidates work in a browser-based Web IDE plus terminal and use fabric-contract-api for chaincode and the fabric-network SDK for client applications.

Sample CHFD Practice Questions

Try these sample questions to test your CHFD exam readiness. Each question includes a detailed explanation. Start the interactive quiz above for the full 100+ question experience with AI tutoring.

1Which Hyperledger Fabric component issues x509 enrollment certificates that establish a member's identity inside an MSP?
A.The orderer's gossip service
B.Fabric CA (or another supported CA)
C.The peer's chaincode container
D.The configtxgen tool
Explanation: Fabric uses x509 PKI for identities. Fabric CA (or any compatible PKI) issues enrollment certificates (eCerts) that the MSP uses to validate signatures from peers, orderers, clients, and admins.
2What does the `fabric-ca-client register` command do?
A.Adds a new identity to the CA database so it can later be enrolled
B.Issues an x509 certificate immediately for the calling user
C.Joins a peer to a channel
D.Submits a transaction to a chaincode
Explanation: `register` creates an identity record in the Fabric CA with attributes and a one-time secret. The owner of that identity then runs `enroll` with that secret to receive their actual x509 certificate and private key.
3Inside Node.js chaincode, which call returns the MSP ID of the organization that submitted the current transaction?
A.ctx.clientIdentity.getMSPID()
B.ctx.stub.getMspID()
C.ctx.clientIdentity.getOrgName()
D.ctx.stub.getOrgID()
Explanation: The fabric-contract-api ClientIdentity class exposes the submitter's identity. `getMSPID()` returns the MSP ID (e.g., 'Org1MSP') of the organization that signed the proposal. There is no `getMspID()` method on the stub itself in the Node.js API.
4What does NodeOUs configuration in an MSP let you do?
A.Differentiate identities (admin, peer, orderer, client) based on Organizational Unit (OU) values inside x509 certs
B.Replace x509 entirely with OAuth tokens
C.Disable channel access control
D.Generate genesis blocks for the orderer
Explanation: NodeOUs let an MSP classify identities by reading the OU field of the certificate. With NodeOUs enabled, an admin/peer/orderer/client identity is recognized by its OU rather than requiring a separate admincerts folder, and is used by policies and signature verification.
5A chaincode method needs to allow only callers that hold the attribute `role=auditor` on their x509 certificate. Which approach is correct in Fabric v2.2 Node.js chaincode?
A.Read `process.env.AUDITOR_USER` and compare to a hard-coded list
B.Use `ctx.clientIdentity.assertAttributeValue('role', 'auditor')` to enforce ABAC
C.Pass the password in the transaction args and check it in chaincode
D.Disable endorsement and trust the application code
Explanation: Fabric supports attribute-based access control (ABAC) by signing attributes into the enrollment certificate and reading them inside chaincode. `assertAttributeValue` (or `getAttributeValue`) on `ctx.clientIdentity` enforces the rule deterministically across all endorsers.
6What is the relationship between an MSP and an organization in a Fabric channel?
A.An MSP is a runtime container hosting an org's chaincode
B.An MSP is the configuration that defines which identities count as members of an organization on a given channel
C.Each organization shares one MSP across all channels
D.MSPs are unrelated to identity
Explanation: An MSP (Membership Service Provider) defines the set of root CAs, intermediate CAs, OUs, and admin certs that determine who is a valid member of an org on a channel. Each org has its own MSP definition that is included in the channel configuration.
7Which method on `ctx.clientIdentity` returns the X.509 certificate object of the transaction submitter so the chaincode can inspect issuer or subject fields?
A.getX509Certificate()
B.getCert()
C.getCertificate()
D.getPublicKey()
Explanation: In the Node.js fabric-contract-api ClientIdentity class, `getX509Certificate()` returns a parsed jsrsasign-style certificate object that exposes the subject, issuer, and other fields. This is the documented API for inspecting the caller's certificate.
8Which Fabric tool generates the genesis block, channel configuration transactions, and anchor peer update transactions from `configtx.yaml`?
A.configtxgen
B.cryptogen
C.peer node start
D.fabric-ca-server
Explanation: `configtxgen` reads `configtx.yaml` and produces the genesis block (`-outputBlock`), channel create transactions (`-outputCreateChannelTx`), and anchor peer update transactions (`-outputAnchorPeersUpdate`). It is the canonical tool for channel artifacts.
9You created a channel but cross-org private state propagation seems unreliable. Which channel-level update most directly addresses this?
A.Run `peer channel update` with an anchor peer update tx generated by configtxgen
B.Restart all orderers
C.Drop and recreate every peer's ledger
D.Switch from CouchDB to LevelDB
Explanation: Anchor peers let gossip across organizations bootstrap. If anchor peers are not configured, peers from one org won't know about peers from another, which causes unreliable cross-org gossip and private data dissemination. `configtxgen -outputAnchorPeersUpdate` plus `peer channel update` fixes this.
10Which consensus implementation does Hyperledger Fabric v2.2 use for its production-ready ordering service?
A.Raft (etcd/raft)
B.Proof-of-work
C.BFT-SMART
D.Paxos
Explanation: Fabric v2.2 ships Raft (etcd/raft) as the production-ready, crash-fault-tolerant ordering consensus. It elects a leader and replicates ordered transactions to follower orderers. Solo and Kafka were deprecated; BFT options arrive in later releases.

About the CHFD Exam

The Certified Hyperledger Fabric Developer (CHFD) validates the ability to write, package, deploy, invoke, and maintain Hyperledger Fabric chaincode and gateway-based client applications. The exam is performance-based: candidates solve hands-on tasks in a Web IDE and command line using Node.js on Fabric v2.2 LTS.

Assessment

Online proctored, performance-based tasks solved in a Web IDE and command line (our practice bank simulates the concepts with 100 multiple-choice questions)

Time Limit

2 hours (120 minutes)

Passing Score

Pass/Fail (exact cut score not published by Linux Foundation)

Exam Fee

$445 USD (Linux Foundation / Hyperledger)

CHFD Exam Content Outline

7%

Identity Management

Fabric CA, register and enroll, x509 enrollment certificates, MSP structure, NodeOUs, identity attributes, and attribute-based access control inside chaincode using getMspID and getX509Certificate.

8%

Network Configuration

configtx.yaml, configtxgen, channel artifacts, channel update transactions, anchor peer configuration, system and application channels, and Raft-based ordering services.

40%

Smart Contract Development

Author Node.js chaincode with the fabric-contract-api package: Contract class, Transaction/Returns/Param decorators, Context, ChaincodeStub, putState, getState, deleteState, composite keys, range and rich queries, deterministic execution rules, private data collections, and contract events.

25%

Smart Contract Invocation

Client applications using the fabric-network SDK: Gateway, Network, Contract, submitTransaction vs evaluateTransaction, transient data, endorsement and discovery, contract and block event listeners, and offline signing.

20%

Maintenance and Testing

peer lifecycle chaincode commands (package, install, queryinstalled, approveformyorg, checkcommitreadiness, commit, querycommitted), package_id and sequence numbers, unit testing chaincode with mock stubs (sinon, chai), integration testing on the test-network, and chaincode upgrade flows.

How to Pass the CHFD Exam

What You Need to Know

  • Passing score: Pass/Fail (exact cut score not published by Linux Foundation)
  • Assessment: Online proctored, performance-based tasks solved in a Web IDE and command line (our practice bank simulates the concepts with 100 multiple-choice questions)
  • Time limit: 2 hours (120 minutes)
  • Exam fee: $445 USD

Keys to Passing

  • Complete 500+ practice questions
  • Score 80%+ consistently before scheduling
  • Focus on highest-weighted sections
  • Use our AI tutor for tough concepts

CHFD Study Tips from Top Performers

1Build the test-network from fabric-samples and re-run peer lifecycle chaincode end to end (package, install, approveformyorg, commit) until the commands feel automatic.
2Practice writing chaincode in Node.js with the fabric-contract-api package, using Contract subclasses and Transaction/Returns/Param decorators.
3Master ctx.stub state APIs: putState, getState, deleteState, createCompositeKey, splitCompositeKey, GetStateByRange, and GetStateByPartialCompositeKey.
4Build a simple client app with the fabric-network SDK and exercise submitTransaction, evaluateTransaction, transient data, and contract event listeners.
5Memorize private data collection mechanics: collections_config.json, transient field, BlockToLive, requiredPeerCount, and how endorsement uses the implicit collection.
6Write unit tests for chaincode with sinon mocks of ChaincodeStub and Context, and run integration tests against a running test-network.

Frequently Asked Questions

What format is the CHFD exam?

CHFD is a 2-hour online proctored, performance-based exam. You solve hands-on tasks in a browser-based Web IDE and command line using Node.js on Hyperledger Fabric v2.2 LTS. Our practice bank simulates the concepts with 100 multiple-choice questions for review.

Which Fabric version does CHFD test?

CHFD aligns with the Hyperledger Fabric v2.2 LTS line. You should be comfortable with the new chaincode lifecycle (peer lifecycle chaincode), the fabric-contract-api programming model, the fabric-network Gateway SDK, and private data collections rather than the legacy v1.x SDK or pre-2.0 chaincode lifecycle.

What are the official CHFD domain weights?

The Linux Foundation curriculum weights the exam as Identity Management 7%, Network Configuration 8%, Smart Contract Development 40%, Smart Contract Invocation 25%, and Maintenance and Testing 20%. That means roughly two-thirds of the exam is focused on writing and invoking chaincode.

How much does the CHFD exam cost?

Linux Foundation performance-based developer exams are $445 USD with one free retake at current pricing. Verify the latest price on the official CHFD product page before purchasing because Linux Foundation periodically updates exam pricing and runs promotions.

Are there prerequisites for CHFD?

There are no formal prerequisites. Linux Foundation recommends working knowledge of Node.js, Linux command line, Docker, and Hyperledger Fabric concepts. The Hyperledger Fabric for Developers course (LFD272) is the recommended companion training.

How long is the CHFD certification valid?

CHFD certification is valid for 3 years from the date earned. Exam eligibility itself is valid for 12 months from purchase, and the exam includes one free retake if you do not pass on the first attempt.