# getDepositAddress

> **注意！！**&#x5728;創建錢包之前，您必須在 AkashicPay.com 上註冊。否則它們將無法被識別，儘管您可能會得到一個地址作為回報。

給定一個網路和一個使用者識別碼 (user-identifier)，這個函式 (function) 會透過 AkashicChain 在指定的網路中建立一個錢包，讓使用者存入錢包。要閱讀更多關於識別碼的用途，請參閱[下一頁](/traditional-chinese/sdk/han-shi-functions/getdepositurl.md)。

`referenceId`在存款申請中是可選的。如果您需要對存款進行更詳細的控制，它允許您識別個別交易。更多資訊請參閱下一頁。

`requestedAmount` 和 `requestedCurrency` 在存款請求中是可選的。它允許您根據這些來識別個別交易。更多資訊請參閱。

注意：存款地址在 AkashicPay 上是永久分配的。這意味著，任何以相同參數（網路和識別碼）隨後呼叫 `getDepositAddress` 將返回相同的地址。這意味著很容易跟蹤識別碼 (identifier) 和地址之間的一對一映射，而且 - 如果識別碼 (identifier) 代表一個用戶 - 用戶不可能搞不清楚該把錢存到哪裡。

## <mark style="color:blue;">範例</mark>

為 `user123` 建立 Tron-wallet

{% tabs %}
{% tab title="TypeScript" %}

```typescript
const { address, identifier } = await akashicPay.getDepositAddress(
  NetworkSymbol.Tron, // Network
  'user123', // identifier
  'order1' // optional referenceId
);
​
// with requestedAmount, requestedCurrency and markupPercentage
const { address, identifier } = await akashicPay.getDepositAddressWithRequestedValue(
  NetworkSymbol.Tron, // Network
  'user123', // identifier
  'orderId', // referenceId
  Currency.USD, // requested currency
  "1000", // requested amount
  TokenSymbol, // optional token symbol, omit if native coin
  1, // optional mark up percentage on exchange rate
);
```

{% endtab %}

{% tab title="PHP" %}

```php
$depositAddress = $akashicPay->getDepositAddress(
  NetworkSymbol::Tron, // Network
  'user123', // identifier
  'order1' // optional referenceId
);
​
// with requestedAmount, requestedCurrency and markupPercentage
$depositAddress = $akashicPay->getDepositAddressWithRequestedValue(
  NetworkSymbol::Tron, // Network
  'user123', // identifier
  'order1', // referenceId
  Currency::USD, // requested currency
  '1000', // requested amount
  TokenSymbol::USDT, // optional token symbol, omit if native coin
  1, // optional mark up percentage on exchange rate
);
```

{% endtab %}

{% tab title="Java" %}

```java
APDepositAddressResult depositAddress = akashicPay.getDepositAddress(
  APNetworkSymbol.TRX, // Network
  'user123', // identifier
  'order1' // optional referenceId
);

// with requestedAmount, requestedCurrency and markupPercentage
APDepositAddressWithRequestedValueRequest request = APDepositAddressWithRequestedValueRequest.builder()
   .network(APNetworkSymbol.TRX) // Network
   .identifier("user123") // identifier
   .referenceId("order1") // referenceId
   .requestedCurrency(APCurrencySymbol.USD) // requested currency
   .requestedAmount(1000.0) // requested amount
   .token(APTokenSymbol.USDT) // optional token symbol, omit if native coin
   .markupPercentage(1.0) // optional mark up percentage on exchange rate
   .build();

APExtendedDepositAddressResult depositAddress = sdk.getDepositAddressWithRequestedValue(request);
```

{% endtab %}

{% tab title="C#" %}
{% code overflow="wrap" %}

```csharp
var trxDepositAddress = await akashicPay.GetDepositAddressAsync(
  TronShastaNetworkSymbol.Value, // Network
  "user123", // identifier
  "order1" // optional referenceId
);

// with requestedAmount, requestedCurrency and markupPercentage
var request = new ApDepositAddressWithRequestedValueRequest.Builder()
  .SetNetwork(TronShastaNetworkSymbol.Value)
  .SetIdentifier("user123") //identifier
  .SetReferenceId("order1") //referenceId
  .SetRequestedCurrency(ApCurrencySymbol.USD) // requested currency
  .SetRequestedAmount(1000.0) // requested amount
  .SetToken(ApTokenSymbol.Usdt) // optional token symbol, omit if native coin
  .SetMarkupPercentage(10.0) // optional mark up percentage on exchange rate
  .Build();
  
var result = await sdk.GetDepositAddressWithRequestedValueAsync(request);
```

{% endcode %}
{% endtab %}

{% tab title="Go" %}

```go
dA, err = ap.getDepositAddress(
  akashicpay.Tron,  // Network
  "user123",  // identifier
  "order1" // optional referenceId
)

// with requestedAmount, requestedCurrency and markupPercentage
dA, err = ap.GetDepositAddressWithRequestedValue(
  akashicpay.Tron, // Network 
  "user123", // identifier 
  "order1", // referenceId 
  akashicpay.CurrencyUSD, // requested currency
  "1000",  // requested amount
  "", // optional token symbol, omit if native coin 
  0 // optional mark up percentage on exchange rate
)
```

{% endtab %}
{% endtabs %}

## <mark style="color:blue;">回調範例</mark>

{% tabs %}
{% tab title="TypeScript" %}

```typescript
{
address: 'TTVkK6hGoAFhALG9NTkUDHjcFFXKmWcScU',
identifier: 'user123'
// with requestedAmount and requestedCurrency
referenceId: 'order1',
requestedAmount: '1000',
requestedCurrency: 'USD',
network: 'TRX-SHASTA',
token: undefined, // or TokenSymbol
exchangeRate: '264.23123',
amount: '3.78',
expires: '2025-07-01T00:00:00.000Z',
markupPercentage: undefined // or string
}
```

{% endtab %}

{% tab title="PHP" %}

```php
[
    "address" => "TTVkK6hGoAFhALG9NTkUDHjcFFXKmWcScU",
    "identifier" => "user123",
    // with requestedAmount and requestedCurrency
    "referenceId" => "order1",
    "requestedAmount" => "1000",
    "requestedCurrency" => "USD",
    "network" => "TRX-SHASTA",
    "exchangeRate" => "264.23123",
    "amount" => "3.78"
]
```

{% endtab %}

{% tab title="Java" %}

```java
{
address: 'TTVkK6hGoAFhALG9NTkUDHjcFFXKmWcScU',
identifier: 'user123'
// with requestedAmount and requestedCurrency
referenceId: 'order1',
requestedAmount: '1000',
requestedCurrency: 'USD',
network: 'TRX-SHASTA',
exchangeRate: '264.23123',
amount: '3.78'
}
```

{% endtab %}

{% tab title="C#" %}

```csharp
{
Address: "TTVkK6hGoAFhALG9NTkUDHjcFFXKmWcScU",
Identifier: "user123"
// with requestedAmount and requestedCurrency
referenceId: "order1",
requestedAmount: "1000",
requestedCurrency: "USD",
network: "TRX-SHASTA",
exchangeRate: "264.23123",
amount: "3.78"
}
```

{% endtab %}

{% tab title="Go" %}

```go
{
Address: "TTVkK6hGoAFhALG9NTkUDHjcFFXKmWcScU",
Identifier: "user123"
// below if with requestedAmount and requestedCurrency (otherwise zero-valued)
ReferenceId: "order1",
RequestedAmount: "1000",
RequestedCurrency: "USD",
Network: "TRX-SHASTA",
Token: "USDT",
ExchangeRate: "264.23123",
Amount: "3.78",
Expires: "2025-07-01T00:00:00.000Z"
MarkupPercentage: "0"
}
```

{% endtab %}
{% endtabs %}

## <mark style="color:blue;">錯誤訊息</mark>

| 錯誤訊息                                                 | 說明                                                 |
| ---------------------------------------------------- | -------------------------------------------------- |
| `AkashicError.KeyCreationFailure` - '產生新錢包失敗。請再試一次'。 | AkashicChain 出現問題，無法產生所要求的錢包。通常應很快解決               |
| `AkashicError.UnHealthyKey` - '新錢包未安全建立，請重新建立        | 已建立錢包，但未驗證是否 100% 健康。例如，其中一個節點可能無法正確寫入其部分資料。馬上再試一次 |


---

# 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.akashicpay.com/traditional-chinese/sdk/han-shi-functions/getdepositaddress.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.
