<p>Given that you're looking for what node (likely you mean protocol) does, the code you're looking for is distributed across repositories.</p>
<p>You can find the source code for interaction with node (API) <a href="https://github.com/input-output-hk/cardano-node/tree/master/cardano-api/src/Cardano/Api" rel="nofollow noreferrer">here</a>, while the propogation/consensus aspect can be found at <a href="https://github.com/input-output-hk/ouroboros-network" rel="nofollow noreferrer">ouroboros-network</a> repo.</p>
<p>All the component-level repositories use ledger derivates from executable specs <a href="https://github.com/input-output-hk/cardano-ledger-specs/tree/master/alonzo/impl/src/Cardano/Ledger" rel="nofollow noreferrer">here</a> - note that I've shared Alonzo specs which is not being used on mainnet yet, but given the background provided in your question.</p>
<p>Lastly, the plutus spec/execution code itself used for testnet(s) - as you're prolly aware - resides in <a href="https://github.com/input-output-hk/plutus" rel="nofollow noreferrer">plutus repo</a></p>

CC BY-SA 4.0
2021-06-29T23:21:43.070Z
2021-06-29T23:27:06.793Z
2021-06-29T23:27:06.793Z
RdLrT
<p>I am currently learning about Plutus and how to write smart contracts in it by following the Plutus Pioneers course on Youtube.</p>
<p>However, I'm curious to know how things work from a node perspective: How a Cardano node receives and validates a transaction that has a smart contract attached to it.</p>
<p>What repos/branches should I take a look at?</p>
<p><a href="https://www.reddit.com/r/CardanoDevelopers/comments/o9f59o/where_to_find_the_code_for_alonzo_plutus_smart/" rel="noreferrer">I also asked this at Reddit/r/CardanoDevelopers</a>.</p>

<plutus><cardano-node>
Where to find the code for Alonzo / Plutus / Smart contracts?
# Where to find the code for Alonzo / Plutus / Smart contracts?

(Asked by: username_0 on 2021-06-29)

I am currently learning about Plutus and how to write smart contracts in it by following the Plutus Pioneers course on Youtube.

However, I'm curious to know how things work from a node perspective: How a Cardano node receives and validates a transaction that has a smart contract attached to it.

What repos/branches should I take a look at?

[I also asked this at Reddit/r/CardanoDevelopers](https://www.reddit.com/r/CardanoDevelopers/comments/o9f59o/where_to_find_the_code_for_alonzo_plutus_smart/).

**Tags:** plutus, cardano-node

---

## 1 answers

### Answer by username_1 on 2021-06-29. Score: 2 | Accepted answer

Given that you're looking for what node (likely you mean protocol) does, the code you're looking for is distributed across repositories.

You can find the source code for interaction with node (API) [here](https://github.com/input-output-hk/cardano-node/tree/master/cardano-api/src/Cardano/Api), while the propogation/consensus aspect can be found at [ouroboros-network](https://github.com/input-output-hk/ouroboros-network) repo.

All the component-level repositories use ledger derivates from executable specs [here](https://github.com/input-output-hk/cardano-ledger-specs/tree/master/alonzo/impl/src/Cardano/Ledger) - note that I've shared Alonzo specs which is not being used on mainnet yet, but given the background provided in your question.

Lastly, the plutus spec/execution code itself used for testnet(s) - as you're prolly aware - resides in [plutus repo](https://github.com/input-output-hk/plutus)


---

