Dojang integration
How KIMP reads the GIWA Dojang Verified Address attestation through DojangScroll, which addresses it uses, and how revocation is handled.
Dojang is GIWA's attestation service. It is built on the Ethereum Attestation Service (EAS), which is deployed on GIWA as a predeploy. Upbit Korea is an attester on Dojang and issues several attestation types. KIMP uses exactly one of them: Verified Address.
Attestation types#
| Attestation | Issued by | Used by KIMP |
|---|---|---|
| Verified Address | Upbit Korea | Yes, as the Verified Lane gate |
| Balance Root | Upbit Korea | No |
| Verified Balance | Upbit Korea | No |
| Verified Code | Upbit Korea | No |
A Verified Address attestation states that an address belongs to a person who holds a verified Upbit Korea account. It does not reveal who that person is.
DojangScroll#
Applications do not parse EAS attestations directly. They call DojangScroll, a read contract that answers one question: does this address hold a valid attestation from this attester. The signature is:
function isVerified(address addr, DojangAttesterId attesterId) external view returns (bool);DojangAttesterId is a user-defined value type over bytes32. The function returns true only if the attestation exists, is issued by the given attester, and has not been revoked or expired.
Addresses#
| Item | GIWA Sepolia value |
|---|---|
| DojangScroll | 0xd5077b67dcb56caC8b270C7788FC3E6ee03F17B9 |
| Upbit Korea attester ID | 0xd99b42e778498aa3c9c1f6a012359130252780511687a35982e8e52735453034 |
| EAS predeploy | 0x4200000000000000000000000000000000000021 |
Mainnet values are taken from GIWA's published documentation at mainnet and set as immutable constructor arguments of KimpVerifiedGate. They are verified against docs.giwa.io during the mainnet deployment.
When KIMP checks#
| Action | Verified Lane check |
|---|---|
| Open a position | Required |
| Increase notional or leverage | Required |
| Add margin | Not required |
| Close or reduce | Not required |
| Settlement at expiry | Not required |
| Being liquidated | Not required |
The check is performed against the account that owns the position, which is the transaction sender. KIMP does not support delegated verification. A contract wallet is eligible only if the contract wallet's own address holds the attestation.
Revocation#
Upbit Korea can revoke an attestation, for example when the underlying account is closed. KIMP reads the current state at every check, so a revocation takes effect on the next open or increase.
- 1Existing Verified Lane positions stay open.
- 2They can be closed at any time, or held to expiry and settled at the TWAP.
- 3They cannot be increased. New Verified Lane positions cannot be opened.
- 4The address stops accruing Verified Lane trading rewards from the moment of revocation.
This avoids forcing a trader out of a position at an arbitrary price because of an off-chain event.
Trust assumptions#
- KIMP trusts Upbit Korea's attestation as issued. It does not re-verify identity.
- KIMP trusts DojangScroll to report revocations correctly.
- If DojangScroll is unavailable or reverts, Verified Lane opens and increases fail closed. Closes are unaffected. The open lane is unaffected.
See Contract interface for the exact Solidity used and a TypeScript example.