Skip to content
KIMP

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#

AttestationIssued byUsed by KIMP
Verified AddressUpbit KoreaYes, as the Verified Lane gate
Balance RootUpbit KoreaNo
Verified BalanceUpbit KoreaNo
Verified CodeUpbit KoreaNo

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:

Solidity
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#

ItemGIWA Sepolia value
DojangScroll0xd5077b67dcb56caC8b270C7788FC3E6ee03F17B9
Upbit Korea attester ID0xd99b42e778498aa3c9c1f6a012359130252780511687a35982e8e52735453034
EAS predeploy0x4200000000000000000000000000000000000021

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#

ActionVerified Lane check
Open a positionRequired
Increase notional or leverageRequired
Add marginNot required
Close or reduceNot required
Settlement at expiryNot required
Being liquidatedNot 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.

  1. 1Existing Verified Lane positions stay open.
  2. 2They can be closed at any time, or held to expiry and settled at the TWAP.
  3. 3They cannot be increased. New Verified Lane positions cannot be opened.
  4. 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.