> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cdp.coinbase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Rule

> Rule API reference.

Package: [`com.coinbase.cdp.types`](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/index)

```java theme={null}
public final class Rule extends Object
```

## Method Details

### `visit`

```java theme={null}
public <T> T visit(Rule.Visitor<T> visitor)
```

**Parameters:**

`visitor` - [Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule).`Visitor`\<`T`>

**Returns:**

`T`

### `signEvmTransaction`

```java theme={null}
public static Rule signEvmTransaction(SignEvmTransactionRule value)
```

**Parameters:**

`value` - [SignEvmTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEvmTransactionRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `sendEvmTransaction`

```java theme={null}
public static Rule sendEvmTransaction(SendEvmTransactionRule value)
```

**Parameters:**

`value` - [SendEvmTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEvmTransactionRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `signEvmMessage`

```java theme={null}
public static Rule signEvmMessage(SignEvmMessageRule value)
```

**Parameters:**

`value` - [SignEvmMessageRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEvmMessageRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `signEvmTypedData`

```java theme={null}
public static Rule signEvmTypedData(SignEvmTypedDataRule value)
```

**Parameters:**

`value` - [SignEvmTypedDataRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEvmTypedDataRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `signSolTransaction`

```java theme={null}
public static Rule signSolTransaction(SignSolTransactionRule value)
```

**Parameters:**

`value` - [SignSolTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignSolTransactionRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `sendSolTransaction`

```java theme={null}
public static Rule sendSolTransaction(SendSolTransactionRule value)
```

**Parameters:**

`value` - [SendSolTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendSolTransactionRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `signSolMessage`

```java theme={null}
public static Rule signSolMessage(SignSolMessageRule value)
```

**Parameters:**

`value` - [SignSolMessageRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignSolMessageRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `signEvmHash`

```java theme={null}
public static Rule signEvmHash(SignEvmHashRule value)
```

**Parameters:**

`value` - [SignEvmHashRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEvmHashRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `prepareUserOperation`

```java theme={null}
public static Rule prepareUserOperation(PrepareUserOperationRule value)
```

**Parameters:**

`value` - [PrepareUserOperationRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/PrepareUserOperationRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `sendUserOperation`

```java theme={null}
public static Rule sendUserOperation(SendUserOperationRule value)
```

**Parameters:**

`value` - [SendUserOperationRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendUserOperationRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `signEndUserEvmTransaction`

```java theme={null}
public static Rule signEndUserEvmTransaction(SignEndUserEvmTransactionRule value)
```

**Parameters:**

`value` - [SignEndUserEvmTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserEvmTransactionRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `sendEndUserEvmTransaction`

```java theme={null}
public static Rule sendEndUserEvmTransaction(SendEndUserEvmTransactionRule value)
```

**Parameters:**

`value` - [SendEndUserEvmTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEndUserEvmTransactionRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `signEndUserEvmMessage`

```java theme={null}
public static Rule signEndUserEvmMessage(SignEndUserEvmMessageRule value)
```

**Parameters:**

`value` - [SignEndUserEvmMessageRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserEvmMessageRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `signEndUserEvmTypedData`

```java theme={null}
public static Rule signEndUserEvmTypedData(SignEndUserEvmTypedDataRule value)
```

**Parameters:**

`value` - [SignEndUserEvmTypedDataRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserEvmTypedDataRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `signEndUserEvmHash`

```java theme={null}
public static Rule signEndUserEvmHash(SignEndUserEvmHashRule value)
```

**Parameters:**

`value` - [SignEndUserEvmHashRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserEvmHashRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `signEndUserSolTransaction`

```java theme={null}
public static Rule signEndUserSolTransaction(SignEndUserSolTransactionRule value)
```

**Parameters:**

`value` - [SignEndUserSolTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserSolTransactionRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `sendEndUserSolTransaction`

```java theme={null}
public static Rule sendEndUserSolTransaction(SendEndUserSolTransactionRule value)
```

**Parameters:**

`value` - [SendEndUserSolTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEndUserSolTransactionRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `signEndUserSolMessage`

```java theme={null}
public static Rule signEndUserSolMessage(SignEndUserSolMessageRule value)
```

**Parameters:**

`value` - [SignEndUserSolMessageRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserSolMessageRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `sendEndUserEvmAsset`

```java theme={null}
public static Rule sendEndUserEvmAsset(SendEndUserEvmAssetRule value)
```

**Parameters:**

`value` - [SendEndUserEvmAssetRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEndUserEvmAssetRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `sendEndUserSolAsset`

```java theme={null}
public static Rule sendEndUserSolAsset(SendEndUserSolAssetRule value)
```

**Parameters:**

`value` - [SendEndUserSolAssetRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEndUserSolAssetRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `sendEndUserOperation`

```java theme={null}
public static Rule sendEndUserOperation(SendEndUserOperationRule value)
```

**Parameters:**

`value` - [SendEndUserOperationRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEndUserOperationRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `createEndUserEvmSwap`

```java theme={null}
public static Rule createEndUserEvmSwap(CreateEndUserEvmSwapRule value)
```

**Parameters:**

`value` - [CreateEndUserEvmSwapRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/CreateEndUserEvmSwapRule)

**Returns:**

[Rule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Rule)

### `isSignEvmTransaction`

```java theme={null}
public boolean isSignEvmTransaction()
```

**Returns:**

`boolean`

### `isSendEvmTransaction`

```java theme={null}
public boolean isSendEvmTransaction()
```

**Returns:**

`boolean`

### `isSignEvmMessage`

```java theme={null}
public boolean isSignEvmMessage()
```

**Returns:**

`boolean`

### `isSignEvmTypedData`

```java theme={null}
public boolean isSignEvmTypedData()
```

**Returns:**

`boolean`

### `isSignSolTransaction`

```java theme={null}
public boolean isSignSolTransaction()
```

**Returns:**

`boolean`

### `isSendSolTransaction`

```java theme={null}
public boolean isSendSolTransaction()
```

**Returns:**

`boolean`

### `isSignSolMessage`

```java theme={null}
public boolean isSignSolMessage()
```

**Returns:**

`boolean`

### `isSignEvmHash`

```java theme={null}
public boolean isSignEvmHash()
```

**Returns:**

`boolean`

### `isPrepareUserOperation`

```java theme={null}
public boolean isPrepareUserOperation()
```

**Returns:**

`boolean`

### `isSendUserOperation`

```java theme={null}
public boolean isSendUserOperation()
```

**Returns:**

`boolean`

### `isSignEndUserEvmTransaction`

```java theme={null}
public boolean isSignEndUserEvmTransaction()
```

**Returns:**

`boolean`

### `isSendEndUserEvmTransaction`

```java theme={null}
public boolean isSendEndUserEvmTransaction()
```

**Returns:**

`boolean`

### `isSignEndUserEvmMessage`

```java theme={null}
public boolean isSignEndUserEvmMessage()
```

**Returns:**

`boolean`

### `isSignEndUserEvmTypedData`

```java theme={null}
public boolean isSignEndUserEvmTypedData()
```

**Returns:**

`boolean`

### `isSignEndUserEvmHash`

```java theme={null}
public boolean isSignEndUserEvmHash()
```

**Returns:**

`boolean`

### `isSignEndUserSolTransaction`

```java theme={null}
public boolean isSignEndUserSolTransaction()
```

**Returns:**

`boolean`

### `isSendEndUserSolTransaction`

```java theme={null}
public boolean isSendEndUserSolTransaction()
```

**Returns:**

`boolean`

### `isSignEndUserSolMessage`

```java theme={null}
public boolean isSignEndUserSolMessage()
```

**Returns:**

`boolean`

### `isSendEndUserEvmAsset`

```java theme={null}
public boolean isSendEndUserEvmAsset()
```

**Returns:**

`boolean`

### `isSendEndUserSolAsset`

```java theme={null}
public boolean isSendEndUserSolAsset()
```

**Returns:**

`boolean`

### `isSendEndUserOperation`

```java theme={null}
public boolean isSendEndUserOperation()
```

**Returns:**

`boolean`

### `isCreateEndUserEvmSwap`

```java theme={null}
public boolean isCreateEndUserEvmSwap()
```

**Returns:**

`boolean`

### `_isUnknown`

```java theme={null}
public boolean _isUnknown()
```

**Returns:**

`boolean`

### `getSignEvmTransaction`

```java theme={null}
public Optional<SignEvmTransactionRule> getSignEvmTransaction()
```

**Returns:**

`Optional`\<[SignEvmTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEvmTransactionRule)>

### `getSendEvmTransaction`

```java theme={null}
public Optional<SendEvmTransactionRule> getSendEvmTransaction()
```

**Returns:**

`Optional`\<[SendEvmTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEvmTransactionRule)>

### `getSignEvmMessage`

```java theme={null}
public Optional<SignEvmMessageRule> getSignEvmMessage()
```

**Returns:**

`Optional`\<[SignEvmMessageRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEvmMessageRule)>

### `getSignEvmTypedData`

```java theme={null}
public Optional<SignEvmTypedDataRule> getSignEvmTypedData()
```

**Returns:**

`Optional`\<[SignEvmTypedDataRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEvmTypedDataRule)>

### `getSignSolTransaction`

```java theme={null}
public Optional<SignSolTransactionRule> getSignSolTransaction()
```

**Returns:**

`Optional`\<[SignSolTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignSolTransactionRule)>

### `getSendSolTransaction`

```java theme={null}
public Optional<SendSolTransactionRule> getSendSolTransaction()
```

**Returns:**

`Optional`\<[SendSolTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendSolTransactionRule)>

### `getSignSolMessage`

```java theme={null}
public Optional<SignSolMessageRule> getSignSolMessage()
```

**Returns:**

`Optional`\<[SignSolMessageRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignSolMessageRule)>

### `getSignEvmHash`

```java theme={null}
public Optional<SignEvmHashRule> getSignEvmHash()
```

**Returns:**

`Optional`\<[SignEvmHashRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEvmHashRule)>

### `getPrepareUserOperation`

```java theme={null}
public Optional<PrepareUserOperationRule> getPrepareUserOperation()
```

**Returns:**

`Optional`\<[PrepareUserOperationRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/PrepareUserOperationRule)>

### `getSendUserOperation`

```java theme={null}
public Optional<SendUserOperationRule> getSendUserOperation()
```

**Returns:**

`Optional`\<[SendUserOperationRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendUserOperationRule)>

### `getSignEndUserEvmTransaction`

```java theme={null}
public Optional<SignEndUserEvmTransactionRule> getSignEndUserEvmTransaction()
```

**Returns:**

`Optional`\<[SignEndUserEvmTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserEvmTransactionRule)>

### `getSendEndUserEvmTransaction`

```java theme={null}
public Optional<SendEndUserEvmTransactionRule> getSendEndUserEvmTransaction()
```

**Returns:**

`Optional`\<[SendEndUserEvmTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEndUserEvmTransactionRule)>

### `getSignEndUserEvmMessage`

```java theme={null}
public Optional<SignEndUserEvmMessageRule> getSignEndUserEvmMessage()
```

**Returns:**

`Optional`\<[SignEndUserEvmMessageRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserEvmMessageRule)>

### `getSignEndUserEvmTypedData`

```java theme={null}
public Optional<SignEndUserEvmTypedDataRule> getSignEndUserEvmTypedData()
```

**Returns:**

`Optional`\<[SignEndUserEvmTypedDataRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserEvmTypedDataRule)>

### `getSignEndUserEvmHash`

```java theme={null}
public Optional<SignEndUserEvmHashRule> getSignEndUserEvmHash()
```

**Returns:**

`Optional`\<[SignEndUserEvmHashRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserEvmHashRule)>

### `getSignEndUserSolTransaction`

```java theme={null}
public Optional<SignEndUserSolTransactionRule> getSignEndUserSolTransaction()
```

**Returns:**

`Optional`\<[SignEndUserSolTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserSolTransactionRule)>

### `getSendEndUserSolTransaction`

```java theme={null}
public Optional<SendEndUserSolTransactionRule> getSendEndUserSolTransaction()
```

**Returns:**

`Optional`\<[SendEndUserSolTransactionRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEndUserSolTransactionRule)>

### `getSignEndUserSolMessage`

```java theme={null}
public Optional<SignEndUserSolMessageRule> getSignEndUserSolMessage()
```

**Returns:**

`Optional`\<[SignEndUserSolMessageRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SignEndUserSolMessageRule)>

### `getSendEndUserEvmAsset`

```java theme={null}
public Optional<SendEndUserEvmAssetRule> getSendEndUserEvmAsset()
```

**Returns:**

`Optional`\<[SendEndUserEvmAssetRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEndUserEvmAssetRule)>

### `getSendEndUserSolAsset`

```java theme={null}
public Optional<SendEndUserSolAssetRule> getSendEndUserSolAsset()
```

**Returns:**

`Optional`\<[SendEndUserSolAssetRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEndUserSolAssetRule)>

### `getSendEndUserOperation`

```java theme={null}
public Optional<SendEndUserOperationRule> getSendEndUserOperation()
```

**Returns:**

`Optional`\<[SendEndUserOperationRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/SendEndUserOperationRule)>

### `getCreateEndUserEvmSwap`

```java theme={null}
public Optional<CreateEndUserEvmSwapRule> getCreateEndUserEvmSwap()
```

**Returns:**

`Optional`\<[CreateEndUserEvmSwapRule](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/CreateEndUserEvmSwapRule)>

### `_getUnknown`

```java theme={null}
public Optional<Object> _getUnknown()
```

**Returns:**

`Optional<Object>`

### `equals`

```java theme={null}
public boolean equals(Object other)
```

**Overrides:**

`[equals](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals\(java.lang.Object\) "class or interface in java.lang")` in class `[Object](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")`

**Parameters:**

`other` - `Object`

**Returns:**

`boolean`

### `hashCode`

```java theme={null}
public int hashCode()
```

**Overrides:**

`[hashCode](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode\(\) "class or interface in java.lang")` in class `[Object](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")`

**Returns:**

`int`

### `toString`

```java theme={null}
public String toString()
```

**Overrides:**

`[toString](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString\(\) "class or interface in java.lang")` in class `[Object](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")`

**Returns:**

`String`
