> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/ko/rome/bloom/investing.md).

# 투자

Bloom은 다음을 위한 마켓플레이스입니다 **허가형 실물 자산**. 각 자산은 Rome 체인에 한 번 배포된 일반적인 Solidity 계약이며, 누가 이를 보유할 수 있는지는 그 계약 안에 규정되어 있습니다. 이 안내서는 구매자를 랜딩 페이지부터 자산 탐색, 자격 확인, 허용 목록 신청, 구매, 보유까지 안내한 뒤, Solana 지갑으로 서명하는 보유자에게만 실제로 다른 한 가지를 설명합니다.

> **규칙은 자산과 함께 이동합니다.** 누가 자산을 보유할 수 있는지는 이 웹사이트가 아니라, 모든 전송에서 자산 계약 자체가 집행합니다. 여기 어느 화면도 이를 무시할 수 없고, 우회 경로도 없습니다. Bloom은 체인을 보여주는 창일 뿐이며, 결정하는 것은 체인입니다.

***

## 구매자에게 "permissioned"가 의미하는 것

권한이 필요한 자산에는 **허용 목록**: 발행자가 이를 보유해도 된다고 결정한 주소들의 집합이 있습니다. 허용 목록은 Bloom 기능이 아니라 자산 계약에 연결된 모듈 안에 있으며, 자산은 모든 민팅, 소각, 전송 때 이를 조회합니다.

> **체인은 당신에 대한 한 가지 사실만 보관합니다: 당신의 주소에 대한 예/아니오 하나입니다.** 어떤 문서도, 개인 정보도, 신원 주장도 체인이나 이 앱 어디에도 저장되지 않습니다. 발행자가 당신을 승인하면, 체인에 도달하는 것은 `isWhitelisted(yourAddress) = true`. 전체 규정 준수 모델은 [COMPLIANCE.md](/ko/rome/bloom/compliance.md).

두 가지 결과가 따르며, 둘 다 제품에서 확인할 수 있습니다:

* 구매하기 전에, 자산은 **당신의 주소** 가 이를 보유해도 되는지를 물어봅니다. 거절은 지갑의 문제가 아니라 자산의 규칙에 대한 사실입니다.
* 발행자가 승인하지 않은 주소로의 전송은 **체인에서 되돌려집니다**. 자산이 이를 거부할 뿐이며, 어떤 화면도 대신하지 않습니다.

***

## 두 개의 지갑 세계

하나의 Bloom 자산은 **둘 다** 의 EVM 지갑(예: MetaMask)과 Solana 지갑(예: Solflare)에서 접근할 수 있습니다. 한 번에 하나의 지갑만 연결합니다. Solana 지갑은 Solana 버전 1 트랜잭션에 서명할 수 있어야 합니다: 오늘 devnet에서는 Solflare가 가능하고, Phantom은 아직 불가능합니다.

| 지갑            | 보유하는 위치                         | 서명하는 것                                                                                  |
| ------------- | ------------------------------- | --------------------------------------------------------------------------------------- |
| **EVM 지갑**    | 다른 EVM 체인과 마찬가지로, 자기 자신의 EVM 주소 | EVM 트랜잭션                                                                                |
| **Solana 지갑** | EVM 주소 **Solana 공개 키에서 파생된**    | 당신의 Solana 서명, 단계마다 두 번 요청됨(참조 [결제와 추가 서명 요청](#paying-and-the-extra-signature-prompts)) |

EVM 지갑의 경우 새로 배울 것은 없습니다. Solana 지갑의 경우 자산은 *파생된* 주소 — 다음과 같이 계산됩니다 `keccak256(solana_pubkey)[12..32]`  — 이며, 이를 작동시키는 것은 오직 당신의 Solana 서명뿐입니다.  **브리지도, 두 번째 토큰도, EVM 계정도** 포함되지 않습니다. 이는 [아래의 Solana 보유자 섹션](#for-a-solana-holder) 과 [LANES.md](/ko/rome/bloom/lanes.md).

***

## 랜딩 페이지

![Bloom 랜딩 페이지: 헤드라인, 두 개의 지갑 세계 행, 그리고 Investor와 Issuer 문.](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-d24cbcc96b6ec85d6a62caa993ccd38d3aff82fc%2Flanding.png?alt=media)

랜딩 페이지(`/`)는 Bloom이 무엇인지 — *Solana뿐 아니라 EVM에도 열려 있는 Solidity 자산* — 를 설명하고 두 개의 문을 제공합니다: **Investor** (열려 있는 자산으로 이동합니다 `/invest`) 및 **Issuer**. 구매자라면, 다음을 선택하세요 **Investor**.

두 개의 행, **Solana 지갑** 및 **EVM 지갑**, 브라우저가 EIP-6963와 Wallet Standard 탐색 프로토콜을 통해 실제로 알린 지갑만 나열합니다. 설치하지 않은 것은 표시되지 않으며, 각 지갑의 이름과 아이콘은 지갑 고유의 것입니다.

맨 아래에는 **컨트랙트** 섹션이 이 배포가 대화하는 주소들—토큰 팩토리, 공유 구현체, 권한 라우터, 기본 판매 상점, 현금 토큰—을 각각 블록 탐색기로 연결해 나열하므로, 앱이 자체적으로 주소를 주장하지 않습니다.

### "Solana로는 어떻게 가능한가요?"

![보관 설명: 왼쪽에서 하나의 서명이 들어오고 오른쪽에서 자산이 이를 승인하며, 그 사이에는 브리지가 없습니다.](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-18d251b822b78890123e6049df399d603523af5d%2Fcustody.png?alt=media)

랜딩 페이지에는 Solana 지갑이 어떻게 Solidity 자산을 보유할 수 있는지 설명하는 안내가 있습니다. 세 가지를 말합니다:

* **하나의 배포.** 자산은 한 번 배포된 일반적인 Solidity 계약입니다. 어디에도 브리지된 복사본은 없습니다 — 복사본이 둘 있다면 규칙을 벗어날 수 있기 때문입니다.
* **두 개의 지갑 세계.** EVM 지갑은 어떤 체인에 접근하듯 계약에 접근합니다. Solana 지갑은 *권한 부여 서명으로* Rome 체인이 Solana 안에서 실행되기 때문에 계약에 접근합니다: 자산은 당신의 Solana 키에서 파생된 EVM 주소에 보관되며, 당신의 서명만이 이를 작동시킬 수 있습니다.
* **자산이 규칙을 보유합니다.** 누가 이를 보유할 수 있는지는 모든 전송에서 계약이 집행합니다 — 이 사이트도 아니고 브리지도 아닙니다. 발행자가 승인하지 않은 주소는 단순히 받을 수 없습니다.

***

## 열린 자산 둘러보기

![/invest의 공개 자산 목록, 가격과 재고를 체인에서 실시간으로 읽어옵니다.](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-18422483cf862d7243349361c7dcbd4d9c6b436b%2Finvest-list.png?alt=media)

`/invest` 현재 판매가 열려 있는 모든 자산을 나열합니다. 각 행에서 보이는 것은:

| 열       | 의미                        |
| ------- | ------------------------- |
| **자산**  | 토큰 자체에서 읽은 자산의 이름과 심볼     |
| **가격**  | 한 단위의 가격,  `wUSDC`        |
| **판매됨** | 제공 수량 대비 판매 수량, 진행 표시줄 포함 |

표 위의 요약은 다음을 집계합니다: **현재 열림** (판매가 몇 건 진행 중인지), **여기서 발행됨** (이 체인이 몇 개의 자산을 발행했는지), 그리고 **지급 통화** (`wUSDC`, 이 배포의 모든 판매에 쓰이는 현금 토큰).

> **이 페이지의 내용은 미리 박혀 있지 않습니다.** 가격, 재고, 상태는 방문할 때마다 체인에서 실시간으로 읽어옵니다. 체인이 응답하지 않으면 페이지가 그렇게 말합니다 — *"체인이 응답하지 않았습니다…"* — 오래된 수치를 보여주거나 비어 있다고 주장하는 대신에. *"현재 판매 중인 것은 없습니다"* 는 체인에 대한 주장이고, 체인이 실제로 빈 목록을 반환할 때에만 나타납니다.

연결하지 않고도 가격과 재고를 읽을 수 있습니다. 구매하려면 지갑이 필요합니다: 페이지에는 **지갑 연결** 프롬프트가 표시되며, 두 개의 제목 아래에 EVM과 Solana 지갑이 제시됩니다. 행을 선택하면 해당 자산의 상세 페이지가 열립니다.

***

## 하나의 자산

![자산 상세 페이지: 왼쪽에는 사실, 오른쪽에는 자격 카드와 구매 패널.](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-341ebd012e46da597a5832fe6ba39af8704be545%2Fasset-detail.png?alt=media)

자산 페이지(`/invest/[address]`)는 두 부분으로 나뉩니다: 왼쪽에는 자산의 사실과 규칙, 오른쪽에는 자격과 구매 패널입니다.

### 사실

| 사실           | 의미                   |
| ------------ | -------------------- |
| **가격**       | 한 단위의 가격,  `wUSDC`   |
| **이용 가능**    | 공개 판매에서 아직 남아 있는 수량  |
| **수익 지급 통화** | 수익이 분배되는 통화(`wUSDC`) |

### 보유 가능 자격

페이지는 자산이 집행하는 세 가지 규칙을 말합니다:

| 규칙          | 내용                              |
| ----------- | ------------------------------- |
| **허용된 보유자** | 발행자가 승인한 주소. 모든 전송에서 자산이 확인합니다. |
| **최소**      | 1 단위. 락업 없음.                    |
| **전송**      | 두 지갑 세계 중 어느 쪽에서든, 다른 허용 주소로만.  |

> **자산은 모든 전송에서 이를 자체적으로 확인합니다. 이 페이지의 어떤 것도 이를 바꿀 수 없습니다.** 규칙은 이 앱의 정책이 아니라 토큰에 대한 사실로 명시되어 있는데, 그것이 바로 사실이기 때문입니다.

***

## 자격 — 어떤 구매보다 먼저, 토큰에서 확인됨

![자산 페이지에서 풀리는 자격 카드: 연결, 확인 중, 이후 허용/비허용.](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-2280eee77f97ef3f1334451fb95811391fedf519%2Feligibility.png?alt=media)

구매를 제공하기 전에, 자산 페이지는 자산 자체의 허용 목록 모듈에 **당신의 주소** 가 이를 보유해도 되는지 묻습니다. 자격 카드는 다음 상태 중 하나를 보여줍니다:

| 상태            | 의미                                             |
| ------------- | ---------------------------------------------- |
| **확인을 위해 연결** | 아직 연결된 지갑이 없습니다. 확인을 실행하려면 하나를 연결하세요.          |
| **확인 중…**     | 연결됨; 온체인 확인이 아직 완료되지 않았습니다.                    |
| **허용됨**       | 당신의 주소는 이 자산을 보유할 수 있습니다.                      |
| **허용되지 않음**   | 자산의 규칙이 당신의 주소를 거부합니다. 허용 목록을 신청하라는 링크가 제공됩니다. |
| **사용 불가**     | 지금은 확인을 읽을 수 없습니다(거절 아님).                      |

> **확인은 양방향입니다.** 구매는 수량을 이동합니다 *상점에서 당신에게*, 따라서 그 전송의 양쪽 당사자 모두 허용 목록에 있어야 합니다. Bloom은 그렇게 질문합니다 — 한쪽만 확인하면 당신은 자격이 있다고 나오지만, 구매가 되돌려질 수 있는데 그 이유는 상점이 그 토큰에 나열되어 있지 않기 때문입니다.

당신의 주소가 허용 목록에 오르면, 같은 카드는 **허용됨**, 그리고 구매가 열려 있습니다:

![허용됨으로 표시된 자격 카드 — 구매자가 허용 목록에 있으며, 구매 패널이 활성화되어 있습니다.](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-46bb4f6d6d75bd6d0674c3fdbece1d8acd70f5b5%2Finvest-permitted.png?alt=media)

거절되면, 표시되는 이유는 **토큰 자체의**,를 그대로 인용한 것입니다. Bloom은 왜 거절되었는지에 대한 문장을 직접 쓰지 않습니다. 자산에 아직 연결된 허용 목록 모듈이 없으면(초안 상태), 그것은 *게이트 없음* — 아무도 제한되지 않으며, 당신은 허용됩니다.

거절되면 카드가 다음으로 연결합니다 **허용 목록 신청**.

***

## 허용 목록 신청하기

![신청서: 주소, 관할권, 보유자 유형, 그리고 두 개의 선언 — 문서 없음.](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-cd846bf05c44424259e0308af395f1cb3acd16ae%2Fapply.png?alt=media)

`/apply` 는 발행자에게 당신의 주소를 승인해 달라고 요청하는 곳입니다. 서두는 전체 이야기를 말합니다: **문서 없음. 선언만.**

> **양식에는 유출될 만한 것이 없고, 어떤 체인에도 아무것도 기록하지 않습니다.** 신청은 발행자가 자체 시스템에서 판단하는 오프체인 기록입니다. 발행자는 자신의 시스템에서 자체 검사를 수행하며, 허용 목록 기재는 그쪽에서 이루어지고, 체인에 도달하는 것은 언제나 당신의 주소에 대한 예/아니오 결과뿐입니다.

다섯 번째는 없고, 네 가지만 제공합니다:

| 필드          | 참고                                                                                                  |
| ----------- | --------------------------------------------------------------------------------------------------- |
| **보유할 주소**  | 연결된 지갑에서 미리 채워집니다. Solana 지갑의 경우 이는 당신의 **파생된** 주소입니다 — 자산이 자리하는 주소이지, 이를 서명하는 키가 아닙니다.             |
| **관할권**     | 고정 목록 중 하나(Singapore, United Arab Emirates, Switzerland, United Kingdom).                           |
| **당신은**     | 개인, 공인 개인, 또는 기관입니다.                                                                                |
| **두 가지 선언** | 둘 다 수락해야 합니다: 당신이 스스로 행동하고 주소를 통제한다는 것, 그리고 발행자가 누가 자산을 보유할 수 있는지 결정하며 그 권한을 철회할 수 있다는 것을 받아들인다는 것. |

위의 `?` 서두 옆에 있는 다음 설명은 왜 문서를 묻지 않는지 설명합니다: 발행자는 자신이 조치할 것만 필요하고, 당신이 업로드할 수 있는 것은 여기 저장될 수 없으며, 온체인에서는 기록이 예 또는 아니오 하나이기 때문입니다.

**신청하려면:**

1. 주소를 확인하고, 관할권과 보유자 유형을 선택한 뒤, 두 선언에 동의합니다.
2. 누르세요 **신청서 제출**. 양식은 로컬에서 유효성을 검사하고 저장소는 서버에서 모든 것을 다시 확인합니다. 양식은 우회당하기 딱 한 번의 요청 차이밖에 나지 않기 때문입니다.
3. 다음과 같은 **비공개 링크** 를 받게 됩니다 `…/apply/status?ref=AP-XXXX-XXXX-XXXX`.

> **링크를 저장하세요 — 신청서로 돌아갈 수 있는 유일한 방법입니다.** 참조값은 60비트의 암호학적 난수와 *인 것을 선택하세요* 승인 권한에서 생성됩니다: 당신의 선언 앞에는 다른 어떤 것도 서 있지 않으며, 이를 복구할 계정이나 비밀번호도 없습니다.

데모에서는 **테스트 연결** 메모가 여러분을 `/approve`로 안내하며, 여기서 자신의 신청을 승인해 루프를 완성할 수 있습니다. 실제 발행자는 이 단계를 자신의 시스템에서 수행합니다 — [아래 참조](#approve-the-test-wiring-stand-in).

***

## 신청 상태와 선언 삭제

![상태 페이지 — 참조값, 선언된 사실들, 타임라인, 삭제 제어.](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-7dd1d7befa9f2e2450d783835f3d6c172bab4650%2Fapply-status.png?alt=media)

`/apply/status` 는 참조값에서 신청서를 다시 읽어옵니다( `?ref=` 링크에서, 또는 이 브라우저가 마지막으로 기억하는 링크에서). 세션은 없으며, 참조값이 키입니다.

페이지는 당신의 위치를 보여줍니다 — **발행자에게서**, **이 자산을 보유할 수 있습니다**, 또는 **거절됨** — 세부 정보 표(참조값, 신청 날짜, 주소, 자산, 관할권, 그리고 **검사** 행)와 발생한 일들의 짧은 타임라인과 함께 표시됩니다. 승인을 받았다면, **자산 구매** 링크가 나타납니다. 거절은 발행자의 고유한 이유를 인용하여 보여줍니다.

위의 **검사** 행은 발행자의 자체 KYC 기록을 반영합니다. 이 데모에는 연결된 제공자가 없으므로 *"선언만 — 문서는 요청되지 않았습니다"* 라고 표시되며, 실제로 일어나지 않은 검증을 암시하지 않습니다.

### 당신이 선언한 것을 삭제하기

이 페이지에서 언제든지 선언을 삭제할 수 있습니다.

> **삭제하면 선언이 파기되고 결정은 남습니다.** 자신에 대해 말한 내용은 삭제되어 복구할 수 없습니다. 발행자의 결정은 남아 있습니다. 이미 공개적으로, 체인에서, 실행되었기 때문입니다 — 그리고 그것을 취소하는 것은 당신이 할 수 있는 삭제가 아니라 발행자가 해야 하는 서명입니다. (발행자 고유의 KYC 기록이 있다면 그것도 남습니다. 공개 체인에 있는 주소를 승인한 증거이기 때문입니다. 여기서 그것을 지워도 그들의 제공자 쪽에서는 아무것도 지워지지 않습니다.)

***

## `/approve` — 테스트 연결용 대체물

![승인 페이지 — "테스트 연결, 발행자 아님" 배너, 주소, 승인 동작, 그리고 그 아래 접힌 온체인 요구사항.](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-148d3d28590c1cf33f8ca7f3be7a980d739de48f%2Fapprove.png?alt=media)

`/approve` 데모에서 전체 여정을 끝에서 끝까지 걸어볼 수 있도록 존재합니다. 배너에는 **"테스트 연결 — 발행자 아님"**&#xC774;라고 적혀 있으며, 그 배너가 이것을 두는 것이 정직한 이유입니다: 운영 환경에서는 발행자가 여기서가 아니라 자신의 워크플로 내에서 신청을 승인합니다.

**그것에서 실제인 것은:** 승인은 실제 온체인 허용 목록 기록입니다. 이 페이지는 배포된 `TestApprover` 계약을 호출합니다 *데모 자산에 무장된* (Mineral Vault I, `ARCV`, 위치는 `0x2b13ba16a429bf630f94882e477fe775d34b7c74`). 그 계약은 호출자에게서 **역할이 필요하지 않습니다** — 누구나 이를 통해 어떤 주소든 승인할 수 있습니다 — 바로 이것이 존재 이유 전체입니다: 데모 루프를 어느 지갑이든, 어느 경로에서든 닫을 수 있게 합니다.

**자신의 주소를 승인하려면:**

1. 신청에 사용한 지갑(EVM 또는 Solana)을 연결하세요. 주소가 미리 채워집니다.
2. 누르세요 **이 주소 승인**. 쓰기의 사전 조건과 결과는 버튼 아래에 접혀 있습니다 — *"이 작업이 하는 일"* 을 열어 서명하기 전에 정확히 무엇이 일어나는지 확인하세요.
3. 성공하면 페이지는 *"승인되었습니다. 신청자는 이제 자산을 보유할 수 있습니다."*

라고 표시됩니다. *Solana 지갑으로 로그인한 경우, 메모에는* "이는 당신의 Solana 키에서 파생된 주소를 승인합니다" **를**  — 실행이 서명하는 주소는 **를 사용하여** 파생된 주소이고; 서명하는 키는

> **당신의 Solana 키입니다.** 운영 환경에서는 이것이 발행자의 시스템에서 내려지는 발행자의 결정입니다. `TestApprover` 설계상 열려 있어 루프를 직접 걸어볼 수 있습니다; 실제 허용 목록 쓰기는 발행자가 보유한 역할로 제한됩니다. 규정 준수 모델에 관한 것은 아무것도 바뀌지 않습니다 — 여전히 발행자의 결정이고, 여전히 체인상의 하나의 불리언이며, 여전히 어디에도 문서는 없습니다.

일단 승인되면 자산 페이지로 돌아가세요; 이제 당신의 자격은 **허용됨**.

***

## 구매

구매 패널은 자산 페이지의 자격 카드 아래에 있습니다.

> **먼저 wUSDC가 필요하신가요?** 모든 판매는 wUSDC로 가격이 매겨지며, 새 지갑에는 wUSDC가 없습니다. [자금을 Rome으로 이동하기](/ko/rome/bloom/funding.md) Sepolia에서 USDC나 ETH를 브리지로 들여온 뒤, 브리지된 가스를 wUSDC로 래핑하는 과정을 안내합니다 — 모두 `/bridge` 화면에서.

![구매 후 나타나는 구매 패널 — "구매되었습니다. 포지션에 표시됩니다."](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-e2ffc015b988fb56be5cf364aa05ac431a0cb5a2%2Fbuy-done.png?alt=media)

1. 수량 **단위** 를 입력하세요. 패널에는 단위 가격과 지불할 총액이 `wUSDC`로 표시됩니다. (실제로 구매가 끌어오는 현금은 기본 단위의 가격으로 계산되므로, 승인 금액은 항상 인용된 금액과 일치합니다.)
2. 구매 버튼을 누르세요. 구매는 한 번의 클릭이 아니라 짧은 절차입니다: 판매가 아직 당신의 `wUSDC`,를 가져갈 권한이 없으면, **승인** 단계가 먼저 나타납니다(*"판매가 당신의 현금을 가져가도록 허용"*), 그다음 **구매** 자체가 진행됩니다.
3. 각 단계는 버튼으로 시작하고 그 아래에 **사전 조건** 및 **결과** 를 접어 둡니다 — 서명하기 전 한 클릭 거리이며 — 실행되는 동안 해당 단계의 상태를 이름으로 표시합니다 — *"지갑을 기다리는 중…"*, 그다음 *"체인에 올리는 중…"*. 절차는 단계 사이에 조건을 다시 확인하므로, 승인 후 판매가 닫히면 되돌리지 않고 구매를 멈춥니다.
4. 성공하면 패널은 *"구매되었습니다. 포지션에 표시됩니다."*

의 경우 **Solana 지갑** 처음에는 절차가 더 길 수 있습니다. 당신의 Rome 측 주소가 구매에 필요한 wUSDC보다 적다면, 먼저 지갑에서 현금을 들여오는 단계가 있고, wUSDC 전송 허가가 아직 없으면 **wUSDC 전송 허용** 단계가 승인 전에 먼저 나타납니다. Buy를 누른 후 Solana 지갑은 현금 들여오기, 허가, 승인, 구매를 한 번에 실행하며, 각 단계가 서명하는 동안 버튼에는 "두 번의 지갑 프롬프트"라고 표시됩니다. 단계 이름과 앞쪽의 프롬프트 수는 여기서가 아니라 Trade와 Credit에서 보입니다. EVM 지갑도 이 패널에서 한 번의 **wUSDC 전송 허용** 단계를 거칩니다. 단계와 프롬프트 수는 [결제와 추가 서명 요청](#paying-and-the-extra-signature-prompts).

지갑이 잘못된 네트워크에 있으면, 패널은 그렇게 알려주고 버튼이 아무 일도 하지 않게 두는 대신 자산의 체인으로 전환하도록 제안합니다.

> **구매는 다른 전송과 마찬가지로 같은 허용 목록 게이트를 통과합니다.** 상점은 자신과 당신의 주소가 모두 허용될 때만 수량을 당신에게 옮깁니다. 자산 고유의 검사를 대신할 수 있는 Bloom 측 확인은 없습니다.

***

## 보유 자산

`/portfolio` 는 당신이 무엇을 보유하는지 보여줍니다. 자산을 보유한 지갑을 연결하면 다음을 볼 수 있습니다:

![포지션 페이지 — 보유 자산, 그 가치, 그리고 요약.](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-adabd845843de879d366f0d21b03dfb87fc0573d%2Fpositions.png?alt=media)

* 요약 — **총 가치** (in `wUSDC`), **자산** (보유한 서로 다른 자산 수), 그리고 **수익 수령**;
* 하나의 **보유 내역** 표는 각 자산, 보유 단위, 그리고 그 가치를 나열합니다.

모든 것은 체인에서 실시간으로 읽어옵니다. 아직 아무것도 보유하지 않았다면, 페이지가 그렇게 말하고 열려 있는 판매로 안내합니다. **수익 수령** 현재는 대시로 표시됩니다: 당신의 지급 내역을 읽으려면 분배 이벤트를 자산의 첫 번째 블록까지 거슬러 올라가야 하는데, 이는 아직 해야 할 일입니다 — 대시는 `0.00` 가 될 문구가 되는 곳에서 정직합니다.

> **포지션은 뷰이지 시장이 아닙니다.** Bloom은 자산의 1차 판매에서 구매하고 이를 보유하는 것을 보여줍니다. 자산 자체는 *다른 허용된 주소로의 전송* 을 양쪽 지갑 세계에서 허용하지만(이것은 명시된 규칙 중 하나입니다), Bloom은 현재 2차 전송이나 판매 제어를 제공하지 않습니다.

***

## Solana 보유자의 경우

위의 모든 내용은 변경 없이 당신에게도 적용됩니다. 이 섹션은 정말로 당신만의 한 가지 놀라움을 다룹니다: **자산이 당신의 Solana 지갑에는 절대 표시되지 않는 주소에 보관된다는 점**, 그리고 그것이 왜 안전한지.

### 보관 체인

![Solana 보유자의 포지션 — "당신의 Solana 키를 위해 보관됨", 파생된 보관 주소, 보관 체인, 그리고 Solana 레인에서 구매한 ARCV 보유분.](https://1350471780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F671PKS8ZQSNqtoC8PGvz%2Fuploads%2Fgit-blob-b4f6ea043299e63183ceb7393e25b83948975218%2Fpositions-solana.png?alt=media)

Solana 지갑을 연결하면, `/portfolio` 에는 **보관 위치** 줄이 표시되며, 자산이 놓여 있는 EVM 주소와, **이것은 어떻게 보관되나요?** 토글이 열리면 보관 패널이 열려 세 단계로 파생 과정을 설명합니다:

1. **당신의 Solana 키** — 이미 지갑에 있는 키입니다. 서명은 하지만, 절대 밖으로 나가지 않습니다.
2. **다음으로 계산됨 — 자산을 보유하는 주소** — 파생된 EVM 주소입니다. 그것은 *산술이지 계정이 아닙니다*: 당신의 키로부터 도출되며, 이를 위한 비공개 키는 없습니다.
3. **무엇이 이를 이동시킬 수 있는가** — 당신의 키의 서명만이 그 주소에 있는 것을 이동시킬 수 있습니다.

> **왜 이것이 안전한가.** 이 자산은 EVM 상태에 상주합니다: 그 잔액은 Rome 프로그램의 계정 안에 저장됩니다. 그리고 **그것의 SPL 민트는 없습니다**, 토큰 계정도 없고, 이동할 Solana 고유 항목도 없으므로 — Solana 쪽 plumbing에는 이를 밖으로 옮길 수 있는 지시가 없습니다. 파생 주소를 구동할 수 있는 것은 오직 당신의 Solana 서명뿐이며, 그 서명이 표현할 수 있는 모든 이동은 allowlist 게이트를 실행하는 자산 계약에 대한 호출입니다. 허용되지 않은 주소로의 전송은 EVM 키로 서명하든 Solana 키로 서명하든 동일하게 되돌려집니다. 이것이 바로 권한형 자산이 원하는 성질입니다 — 참고 [LANES.md](/ko/rome/bloom/lanes.md#custody-why-the-rwa-stays-at-the-synthetic).

나열할 SPL 토큰이 없기 때문에, **당신의 Solana 지갑에는 RWA 보유분이 표시되지 않습니다** — 포지션 화면은 Bloom 앱입니다. 분실한 Solana 키는 자산을 우회적으로 이동해서가 아니라 발행자의 절차를 통해 복구됩니다.

### 결제와 추가 서명 요청

* **Solana 수수료는 본인 지갑의 SOL로 지불합니다.** 파생된 EVM 주소에는 SOL이 필요하지 않습니다. 그 가스는 아래에 설명된 한 가지 경우, 즉 한 번의 트랜잭션에 너무 큰 호출일 때만 사용됩니다.
* **모든 호출은 Solana 버전 1 트랜잭션이며, 모든 호출은 두 번의 확인 프롬프트입니다.** 승인, 매수 또는 전송은 체인의 프록시가 당신의 지갑용으로 구성합니다. 먼저 지갑은 다음으로 시작하는 읽을 수 있는 메시지에 서명합니다 *Rome 승인*이는 당신의 Solana 키가 이 정확한 호출을 승인함을 증명합니다. 그런 다음 트랜잭션 자체에 서명합니다. 따라서 승인 후 매수는 총 네 번의 프롬프트입니다.
* **버전 1 트랜잭션에 서명할 수 없는 지갑은 거기서 멈춥니다.** Bloom은 구식 형식을 보내는 대신 차단(fail closed)됩니다. 당분간 devnet에서는 Solflare를 사용하세요; Phantom은 아직 버전 1 트랜잭션에 서명하지 않습니다.
* **현금을 이동해 넣는 것은 필요할 때만 한 번의 프롬프트입니다.** 매수는 휴면 상태에서는 아무것도 보유하지 않는 파생 주소의 wUSDC를 사용합니다. 보유량이 매수 비용보다 적으면 Bloom은 먼저 부족분을 지갑의 USDC 토큰 계정에서 옮깁니다. Trade와 Credit에서는 이 단계가 다음과 같이 불립니다 *현금 이전*; Invest 매수에서는 Buy를 누른 뒤 매수의 일부로 실행됩니다.
* **일회성 부여는 지갑당 한 번 수행되는 별도의 단계입니다.** 파생 주소가 처음으로 wUSDC를 사용할 때, Bloom은 **wUSDC 전송 허용** 승인보다 먼저 이를 둡니다. 이것도 다른 호출과 마찬가지로 두 번의 프롬프트가 필요한 호출이며, 한 번 설정되면 다시 요청되지 않습니다. 이것이 존재하는 이유는 [지갑당 1회 권한 부여](/ko/core-concepts/token-interop.md#one-time-grant-per-wallet).
* **한 번의 Solana 트랜잭션에 비해 너무 큰 호출은 더 적은 프롬프트로 중계됩니다.** Bloom은 항상 먼저 지갑이 서명한 직접 트랜잭션을 시도합니다. 체인이 크기 제한에 맞지 않아 이를 거부하면, 동일한 승인 서명이 프록시에 전달되어 프록시가 대신 제출합니다: 해당 호출에 대해 한 번의 프롬프트입니다. 프록시가 제출하므로 호출 비용은 파생 주소의 Rome 가스로 지불되며, 따라서 그 잔액이 부족하면 Bloom이 먼저 지갑에서 이를 보충하는데, 이때 한 번 더 프롬프트가 필요하며 보통 지갑당 한 번만 발생합니다. 참고 [LANES.md](/ko/rome/bloom/lanes.md#calls-too-large-for-one-transaction).

따라서 새 Solana 지갑으로 처음 매수할 때는: 현금 이동(1 프롬프트), wUSDC 전송 허용(2), 매도 승인(2), 매수(2)입니다.

> **더 큰 작업은 거부되지 않고 중계됩니다.** 매수는 하나의 Solana 트랜잭션에 들어가며, "다단계 여정"(먼저 승인하고 그다음 매수)은 각각 자체적으로 원자적인 여러 개의 완전한 트랜잭션입니다. Credit에서 더 큰 시장 작업을 포함할 수 있는, 프록시가 한 번의 트랜잭션에 너무 크다고 보고한 호출만이 위에서 설명한 중계 경로를 탑니다.

***

## 실제 규제 준수는 어디에 있는가

어디에서 무엇이 강제되는지 요약하면, 여기의 어떤 것도 Bloom 정책으로 오해되지 않도록 하기 위함입니다:

| 항목               | 강제 주체                        | 아닌 주체           |
| ---------------- | ---------------------------- | --------------- |
| 누가 자산을 보유할 수 있는가 | 모든 전송 시 자산의 allowlist 모듈     | 이 웹사이트          |
| 승인되지 않은 주소로의 전송  | 자산에 의해 체인상에서 되돌려짐            | 어떤 오프체인 필터도     |
| 당신에 대해 저장되는 것    | 하나의 불리언(`isWhitelisted`) 주소당 | 문서 또는 PII, 어디에든 |
| 누가 당신을 승인할 수 있는가 | 발행자의 오프체인 결정                 | Bloom           |

전체 모델은 다음을 읽어보세요 [COMPLIANCE.md](/ko/rome/bloom/compliance.md); 두 개의 경로 메커니즘은 [LANES.md](/ko/rome/bloom/lanes.md).

> **이것은 모형이 아닙니다.** 실제 구매자가 EVM 지갑으로 이 자산을 구매했고, 실제 Solana 지갑이 Solana 경로에서 이를 구매했습니다 — 같은 토큰, 같은 allowlist, 같은 wUSDC입니다. 모든 트랜잭션은 다음에 연결되어 있습니다 [증거](/ko/rome/bloom/evidence-investor.md) 페이지. 이 가이드의 Permitted 카드, 포지션, 그리고 Solana 수탁 체인은 그 거래들 이후의 해당 구매자들입니다.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/ko/rome/bloom/investing.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
