> ## Documentation Index
> Fetch the complete documentation index at: https://yieldxyz.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Dinari

> Mint Dinari's USD+ from USDC on Ethereum, Base, or Arbitrum and redeem through an operator-settled queue.

Dinari is a real-world-asset provider: depositing USDC mints USD+, a non-rebasing, yield-bearing stablecoin backed by short-term Treasury instruments, cash, and equivalents. yield.xyz exposes this as a `real_world_asset` yield on Ethereum, Base, and Arbitrum, one yield per network.

## Availability

| Network | Input token | Position token | Yield ID |
| - | - | - | - |
| Ethereum | USDC | USD+ | `ethereum-usdc-dinari-usd-plus-vault` |
| Base | USDC | USD+ | `base-usdc-dinari-usd-plus-vault` |
| Arbitrum | USDC | USD+ | `arbitrum-usdc-dinari-usd-plus-vault` |

`kycRequired` is `false`: there is no onboarding flow, and there is no KYC handoff before entering. List Dinari yields enabled for your project with [`GET /v1/yields`](/api-reference/YieldsController_getYields) filtered by `providers=dinari`.

<Note>
  USD+ is permissionless to mint and hold (`kycRequired: false`). The yield's `kyc.eligibility` metadata sets `usPersonAllowed: false` with geo-blocking enforced, and the yield screens addresses against USD+'s on-chain deny-list rather than running a KYC check. A restricted address fails the yield's `GET /v1/yields/{yieldId}/kyc/status` check with a rejected result even though `kycRequired` is `false`. See [KYC](/documentation/earn/rwas/kyc) for how the status check behaves for permissionless RWA yields.
</Note>

## Entering

The enter argument is `amount`, in USDC, with an optional `receiverAddress` to mint USD+ to an address other than the signer. yield.xyz's minter contract checks both the signer and the receiver against USD+'s on-chain deny-list before building the transaction; a blocked address fails before a transaction is returned. When the current USDC allowance is insufficient, an `APPROVAL` step precedes the mint. Minting is atomic and settles in the same transaction as any other enter action.

## Exiting

Exiting does not return USDC directly. The exit argument is `amount` (or `useMaxAmount` for the full USD+ balance) and an optional `receiverAddress` for the USDC payout; submitting it calls the redeemer contract's `requestRedeem` and queues a redemption ticket rather than swapping instantly. An `APPROVAL` step precedes the request when the USD+ allowance is insufficient.

<Warning>
  Redemption is asynchronous. Dinari's operator settles the queued ticket within a cooldown of 3 days (`cooldownPeriod`), and there is no separate claim transaction: the USDC payout lands directly in the receiver's address once the operator fulfills the ticket.
</Warning>

## Position and balances

While holding USD+, your address reports an `active` balance in USDC terms at a 1:1 price per share; USD+ does not rebase, and yield is credited off-chain and reflected in the token's value rather than in a growing balance. Reward claiming is automatic; there is no manual claim step for accrued yield.

A redemption in flight after `requestRedeem` reports as an `exiting` balance until the operator settles it, at which point it drops out of the balance response and the USDC arrives in the receiver's wallet.

## Next steps

<Columns cols={2}>
  <Card title="Asset coverage" icon="building-columns" href="/documentation/earn/rwas/coverage/assets">
    Compare Dinari's USD+ with other tokenized RWA products.
  </Card>

  <Card title="Action lifecycle" icon="arrows-rotate" href="/documentation/earn/core-concepts/actions">
    Request, sign, and submit enter and exit actions.
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.