# Appendices

[← Back to Building and Integrating Custom RPC Handlers](/core-dev-bootcamp/module07.md)

## Overview

This appendices section provides supplementary reference material and practical guides for Building and Integrating Custom RPC Handlers. These documents complement the main module content with real-world examples, utility reference material, and troubleshooting guidance.

***

## Appendix Files

### 1. [Handler Examples](/core-dev-bootcamp/module07/appendices/handler-examples.md)

**Real-world RPC handler implementations from rippled**

This appendix provides detailed walkthroughs of three actual handlers used in production Rippled code:

* **AccountInfo Handler** - Query account data and state
* **Submit Handler** - Process and submit transactions
* **ServerInfo Handler** - Retrieve node and network information

Each example includes:

* Source code analysis
* Key implementation patterns
* Error handling approaches
* Performance considerations
* References to core module topics

**Use this when**: You want to see how established handlers are implemented and need patterns to follow in your own code.

***

### 2. [Helper Functions](/core-dev-bootcamp/module07/appendices/helper-functions.md)

**Common utility functions and patterns from rippled RPC module**

A reference guide to frequently-used helper functions that simplify RPC handler development:

* **RPC::accountFromString()** - Parse account identifiers
* **RPC::lookupLedger()** - Retrieve specific ledger versions
* **RPC::getLedgerRange()** - Get valid ledger index bounds
* **parseBase58<>()** - Decode Base58Check encoded data
* **amountFromJsonNoThrow()** - Safe amount parsing

Each function includes:

* Full function signatures
* Parameter descriptions
* Return value semantics
* Common error conditions
* Code examples

**Use this when**: You need to perform common RPC operations and want to know what utilities are already available in the rippled codebase.

***

### 3. [Debugging Guide](/core-dev-bootcamp/module07/appendices/debugging-guide.md)

**Troubleshooting techniques and strategies for RPC handler development**

Comprehensive guide for diagnosing and fixing issues during handler implementation:

* **Compilation Errors** - Common C++ patterns that cause build failures
* **Runtime Debugging** - Using debuggers with rippled
* **Log Configuration** - Setting appropriate log levels for diagnosis
* **Testing Strategies** - How to test handlers effectively
* **Performance Analysis** - Identifying bottlenecks

Includes:

* Step-by-step debugging workflows
* GDB/LLDB configuration for rippled
* Log message interpretation
* Common pitfalls and their solutions
* Testing best practices

**Use this when**: Your handler isn't working as expected and you need to diagnose and fix the issue quickly.

***

## Quick Reference Links

| Topic                       | Related Module Section                                                                                                                                  |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Handler function signatures | [Implementing Custom Handlers](/core-dev-bootcamp/module07/implementing-custom-handlers.md)                                                             |
| Error codes and mapping     | [Error Handling and Validation](https://github.com/XRPL-Commons/xrpl-trainings/blob/main/core-dev-bootcamp/module07/error-handling-validation.md)       |
| Role-based permissions      | [Authentication and Authorization](https://github.com/XRPL-Commons/xrpl-trainings/blob/main/core-dev-bootcamp/module07/authentication-authorization.md) |
| Architecture overview       | [RPC Handler Architecture](https://github.com/XRPL-Commons/xrpl-trainings/blob/main/core-dev-bootcamp/module07/rpc-handler-architecture.md)             |
| Testing framework           | [Testing RPC Handlers](/core-dev-bootcamp/module07/testing-rpc-handlers.md)                                                                             |

***

## How to Use These Appendices

**For Learning**:

1. Start with the main module content
2. Use appendix examples to see real implementations
3. Reference helper functions when implementing your handler
4. Consult the debugging guide if you encounter issues

**For Development**:

1. Keep handler-examples.md open while writing your handler
2. Refer to helper-functions.md when you need to perform standard operations
3. Check debugging-guide.md if your code doesn't compile or run correctly

**For Reference**:

* Each appendix can be consulted independently
* Cross-references point back to relevant main module sections
* Code examples are self-contained and can be adapted to your use case

***

## Source References

All code examples in these appendices are drawn from:

* **Rippled Source**: <https://github.com/XRPLF/rippled>
* **XRPL RPC Specification**: <https://xrpl.org/public-api-methods.html>

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.xrpl-commons.org/core-dev-bootcamp/module07/appendices.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
