---
title: "[Ethereum] Process contract call"
method: POST
path: "/v1/ledgers/{ledgerId}/ethereum/call"
tags: ["Ledgers"]
---

# \[Ethereum\] Process contract call

`POST /v1/ledgers/{ledgerId}/ethereum/call`

## Request

- Base URL: `https://docs.ripple.com` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.ripple.com/v1/ledgers/{ledgerId}/ethereum/call`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/ripple/apis/ripple-custody-api/docs/v1/ledgers/:ledgerId/ethereum/call/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `ledgerId` string, required

## Request body

- CoreEthereumCallRequest
  - `contractAddress` string, required
  - `from` union, required
    - CoreEthereumCallerAccount
      - `domainId` string, uuid, required
      - `accountId` string, uuid, required
      - `type` 'Account', required
    - CoreEthereumCallerAddress
      - `address` string, required
      - `type` 'Address', required
  - `value` string: This field is a large integer that can be positive or zero. It is represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.
  - `data` string

## Response `200`

- string

## Other responses

- `400`: Invalid value for: path parameter ledgerId, Invalid value for: body
- `401`: One of: Invalid JWT (InvalidJwtError); User not authorized (PermissionDeniedError)
- `404`: Entity or Domain not found (EntityNotFoundError)

---

[API](https://skmtc.dev/ripple/apis/ripple-custody-api.md) - [All operations](https://skmtc.dev/ripple/apis/ripple-custody-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ripple/apis/ripple-custody-api/revisions/c6f0ad6b70c0?raw)
