---
title: Node interface
description: The code for an authentication node must implement the Node interface.
component: pingam
version: 7.2
page_id: pingam:auth-nodes:core-node
canonical_url: https://docs.pingidentity.com/pingam/7.2/auth-nodes/core-node.html
---

# Node interface

The code for an authentication node must implement the `Node` interface.

AM provides base classes you can extend to implement the `Node` interface, depending on the type of custom authentication node you are creating. The available base classes are as follows:

* `SingleOutcomeNode`

  Used in nodes that only have a single exit path.

  The [Modify Auth Level node](../authentication-guide/auth-node-configuration-hints.html#auth-node-modify-auth-level) is an example of a node that uses the `SingleOutcomeNode` base class.

  For more information, see the [SingleOutcomeNode](../_attachments/apidocs/org/forgerock/openam/auth/node/api/SingleOutcomeNode.html) class in the *AMPublic API Javadoc*.

* `AbstractDecisionNode`

  Used in nodes that have a boolean-type exit path. For example, true or false, yes or no, or allow or deny.

  The [Data Store Decision node](../authentication-guide/auth-node-configuration-hints.html#auth-node-data-store-decision) is an example of a node that uses the `AbstractDecisionNode` base class.

  For more information, see the [AbstractDecisionNode](../_attachments/apidocs/org/forgerock/openam/auth/node/api/AbstractDecisionNode.html) class in the *AMPublic API Javadoc*.

Implement the `Node` interface yourself if your custom node exit paths do not match the scenarios outlined above.

For more information, see the [Node](../_attachments/apidocs/org/forgerock/openam/auth/node/api/Node.html) interface in the *AMPublic API Javadoc*.
