Communitygithub.com

awp-core/awp-skill

AWP(Agent Work Protocol) — Base, Ethereum, Arbitrum 및 BSC에서 에이전트 마이닝을 위한 완벽한 툴킷입니다. 사용자가 AWP, worknets, veAWP, awp-wallet 또는 AWP 관련 작업을 명시적으로 언급할 때 이 스킬을 사용하세요.

awp-skill란 무엇인가요?

AWP(Agent Work Protocol) 스킬은 AI 에이전트가 Base, Ethereum, Arbitrum, BSC 블록체인에서 분산형 작업 네트워크(worknet)와 상호작용할 수 있도록 설계된 종합적인 툴킷입니다. 온보딩(지갑 설정, 등록, worknet 참여), 스테이킹(ERC-2612 permit을 통한 가스리스 릴레이 지원), 할당(에이전트에 스테이크 할당/해제), worknet 관리(등록, 일시 중지, 재개, 취소), 에이전트 바인딩(에이전트 지갑을 소유자에 연결), 거버넌스(제안 및 투표), 조회(잔액, 포지션, 배출량, 에포크, 공지사항) 등 AWP 프로토콜의 전체 수명 주기를 처리합니다. AWP JSON-RPC API(https://api.awp.sh/v2)를 통해 작동하며, awp-wallet CLI를 사용하여 트랜잭션 서명을 처리합니다. 등록은 무료이며 대부분의 worknet은 스테이킹이 필요하지 않으므로 사용자는 AWP 토큰 없이도 즉시 수익을 창출할 수 있습니다. 이 스킬은 안전한 환경 변수 보호를 위해 하드코딩된 네트워크 엔드포인트를 사용하며, 사용자에게 모든 작업 과정을 투명하게 공개합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add awp-core/awp-skill

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

AWP Registry

스킬 버전: 1.9.1

요구 사항 및 보안

  • 런타임: python3, node (wallet-raw-call.mjs 브리지용)
  • 지갑: awp-wallet CLI — https://github.com/awp-core/awp-wallet 에서 설치
  • 자격 증명: awp-wallet 세션 토큰 (--token으로 전달; awp-wallet unlock으로 생성됨; 사용자 제공 비밀번호 없음). 새 지갑 버전은 더 이상 unlock이 필요하지 않습니다 — --token은 구형 지갑과의 하위 호환성을 위해 선택 사항입니다.
  • 체인: EVM_CHAIN 환경 변수 (선택 사항, 기본값: base). 이름 또는 숫자 ID를 허용합니다.
  • 네트워크 엔드포인트 (하드코딩됨, 재정의 불가 — 보안상 설계로 환경 변수 하이재킹 방지):
    • https://api.awp.sh/v2 — AWP JSON-RPC API
    • https://mainnet.base.org — Base EVM RPC
    • wss://api.awp.sh/ws/live — 실시간 이벤트용 WebSocket (선택 사항)
  • 작성되는 파일 (모두 옵트인, 데몬은 명시적 사용자 동의 필요):
    • ~/.awp/daemon.pid, ~/.awp/daemon.log — 백그라운드 모니터
    • ~/.awp/notifications.json, ~/.awp/status.json — 프로토콜 상태 캐시
    • ~/.awp/openclaw.json — OpenClaw 푸시 구성 (사용자만 생성 가능, 스킬이 자동 생성하지 않음)

API — JSON-RPC 2.0

이 스킬의 모든 API 호출은 POST를 통한 JSON-RPC 2.0을 사용합니다:

POST https://api.awp.sh/v2
Content-Type: application/json

요청: {"jsonrpc":"2.0","method":"namespace.method","params":{...},"id":1} 발견: GET https://api.awp.sh/v2 | WebSocket: wss://api.awp.sh/ws/live | 배치: 요청당 최대 20개.

탐색기: Base → basescan.org | Ethereum → etherscan.io | Arbitrum → arbiscan.io | BSC → bscscan.com

본 문서 전체에서 모든 curl 명령어는 https://api.awp.sh/v2로의 JSON-RPC POST를 사용합니다. REST 스타일 GET 경로를 사용하지 마세요.

API 메서드 참조

시스템

메서드매개변수설명
stats.global없음글로벌 프로토콜 통계: 총 사용자, worknet, 스테이킹된 AWP, 배출된 AWP, 활성 체인
registry.getchainId?모든 컨트랙트 주소 + EIP-712 도메인 정보. chainId를 생략하면 4개 체인 모두의 배열을 반환합니다.
health.check없음API가 실행 중이면 {"status": "ok"} 반환
health.detailed없음체인별 상태: 인덱서 동기화 블록, 키퍼 상태, RPC 지연 시간
chains.list없음지원되는 모든 체인에 대한 {chainId, name, status, explorer} 배열

사용자

메서드매개변수설명
users.listchainId?, page?, limit?한 체인의 페이지별 사용자 목록
users.listGlobalpage?, limit?체인 간 중복 제거된 사용자 목록
users.countchainId?총 등록 사용자 수
users.getaddress (필수), chainId?사용자 상세 정보: 잔액, 바인딩된 에이전트, 수취인, 등록 상태
users.getPortfolioaddress (필수), chainId?전체 포트폴리오: 신원 + 스테이킹 + NFT 포지션 + 할당 + 위임자
users.getDelegatesaddress (필수), chainId?이 사용자가 위임자로 승인한 주소 목록

주소 및 Nonce

메서드매개변수설명
address.checkaddress (필수), chainId?등록 상태, 바인딩, 수취인 확인. 아래 응답 형식을 참조하세요.
address.resolveRecipientaddress (필수), chainId?바인드 체인을 루트까지 따라가서 유효한 보상 수취인 반환
address.batchResolveRecipientsaddresses[] (필수, 최대 500), chainId?유효 수취인 일괄 확인 (온체인 호출)
nonce.getaddress (필수), chainId?AWPRegistry EIP-712 nonce (bind/unbind/setRecipient/registerWorknet/grantDelegate/revokeDelegate 용). 참고: 온체인 상태보다 뒤쳐질 수 있습니다. 서명을 위해서는 온체인에서 AWPRegistry.nonces(user)를 읽는 것을 선호합니다.
nonce.getStakingaddress (필수), chainId?AWPAllocator EIP-712 nonce (allocate/deallocate 용). 참고: 온체인 상태보다 뒤쳐질 수 있습니다. 서명을 위해서는 온체인에서 AWPAllocator.nonces(user)를 읽는 것을 선호합니다.

에이전트

메서드매개변수설명
agents.getByOwnerowner (필수), chainId?이 소유자에게 바인딩된 모든 에이전트 (주소)
agents.getDetailagent (필수), chainId?에이전트 상세 정보: 소유자, 바인딩 체인, 위임 상태
agents.lookupagent (필수), chainId?빠른 조회: {"ownerAddress": "0x..."} 반환
agents.batchInfoagents[] (필수, 최대 100), worknetId (필수), chainId?일괄 쿼리: 에이전트 정보 + 지정된 worknet에서의 스테이크

스테이킹

메서드매개변수설명
staking.getBalanceaddress (필수), chainId?{totalStaked, totalAllocated, unallocated}를 wei 문자열로 반환
staking.getUserBalanceGlobaladdress (필수)위와 동일하지만 모든 체인에 걸쳐 집계됨
staking.getPositionsaddress (필수), chainId?veAWP 포지션 배열: {tokenId, amount, lockEndTime, createdAt}
staking.getPositionsGlobaladdress (필수)모든 체인의 포지션 (포지션별 chainId 포함)
staking.getAllocationsaddress (필수), chainId?, page?, limit?페이지별 할당 기록: {agent, worknetId, amount}
staking.getFrozenaddress (필수), chainId?동결된 할당 (금지된 worknet으로부터)
staking.getPendingaddress (필수), chainId?확인 대기 중인 할당
staking.getAgentWorknetStakeagent (필수), worknetId (필수)특정 worknet에서 에이전트의 총 할당 스테이크 (체인 간)
staking.getAgentWorknetsagent (필수)이 에이전트가 0이 아닌 할당을 가진 모든 worknetId
staking.getWorknetTotalStakeworknetId (필수)worknet에서 모든 에이전트에 걸쳐 스테이킹된 총 AWP

Worknets

메서드매개변수설명
worknets.liststatus?, chainId?, page?, limit?worknet 목록. 상태별 필터: Pending, Active, Paused, Banned
worknets.listRankedchainId?, page?, limit?총 스테이크 기준으로 정렬된 worknet (가장 높은 순)
worknets.searchquery (필수, 1-100자), chainId?, page?, limit?이름 또는 심볼로 검색 (대소문자 구분 없음)
worknets.getByOwnerowner (필수), chainId?, page?, limit?주소가 소유한 worknet
worknets.getworknetId (필수)전체 worknet 상세 정보: 이름, 심볼, 상태, alphaToken, LP 풀, 소유자, 스테이크
worknets.getSkillsworknetId (필수)Skills URI (worknet의 기능을 설명하는 오프체인 메타데이터)
worknets.getEarningsworknetId (필수), page?, limit?에포크별 페이지별 AWP 수익 기록
worknets.getAgentInfoworknetId (필수), agent (필수)특정 worknet 내 에이전트 정보: 스테이크, 유효성, 보상 수취인
worknets.listAgentsworknetId (필수), chainId?, page?, limit?스테이크 기준으로 정렬된 worknet 내 에이전트

배출 (Emission)

메서드매개변수설명
emission.getCurrentchainId?현재 에포크 번호, 일일 배출량, 총 가중치, 정산된 에포크
emission.getSchedulechainId?배출 전망: 감소가 적용된 30일, 90일, 365일 누계
emission.getGlobalSchedule없음위와 동일하지만 4개 체인 모두에 걸쳐 집계됨
emission.listEpochschainId?, page?, limit?배출 총계가 포함된 정산된 에포크의 페이지별 목록
emission.getEpochDetailepochId (필수), chainId?상세 내역: 특정 에포크의 수취인별 AWP 분배

토큰

메서드매개변수설명
tokens.getAWPchainId?AWP 토큰 정보: totalSupply, maxSupply, circulatingSupply (체인별)
tokens.getAWPGlobal없음모든 체인에 걸쳐 집계된 AWP 정보
tokens.getWorknetTokenInfoworknetId (필수)Alpha 토큰 정보: 주소, 이름, 심볼, totalSupply, minter
tokens.getWorknetTokenPriceworknetId (필수)LP 풀의 Alpha/AWP 가격 (10분 캐시). sqrtPriceX96 및 사람이 읽을 수 있는 가격을 반환합니다.

거버넌스

메서드매개변수설명
governance.listProposalsstatus?, chainId?, page?, limit?제안 목록. 상태: Active/Pending/Canceled/Defeated/Succeeded/Queued/Expired/Executed
governance.listAllProposalsstatus?, page?, limit?체인 간 제안 목록
governance.listGroupedpage?, limit?체인 간 병합 보기 — 체인 간 동일한 proposalId가 하나의 항목으로 병합됨
governance.listByStatusGroupedstatus (필수), page?, limit?적어도 하나의 체인이 상태와 일치하는 병합된 제안
governance.getActivepage?, limit?활성 제안 바로가기 — listByStatusGrouped(status="Active")와 동일
governance.getProposalproposalId (필수, 16진수 또는 10진수), chainId?강화된 상세 정보: 실시간 투표, 상태, 상위 100명 유권자, 정족수, 본문 + url (신호 전용), contentHash
governance.decodeProposalActionsproposalId (필수), chainId?calldata를 사람이 읽을 수 있는 함수 호출로 디코딩합니다. 지원 대상: AWPRegistry, AWPDAO, Treasury, AWPEmission, AWPAllocator, veAWP, AWPWorkNet
governance.getTimelineproposalId (필수), chainId?전체 수명 주기 타임라인: Created → VotingStarted → VotingEnded → Queued → Executed/Canceled
governance.getQuorumProgressproposalId (필수), chainId?실시간 정족수 진행 상황 (bps), willPassIfEnded, 마감 시간
governance.getEligibleTokensaddress (필수), proposalId (필수), chainId?제안별 veAWP NFT 자격 (createdAt < proposalCreatedAt인 경우 자격 있음)
governance.getVotingPoweraddress (필수), proposalId?, chainId?주소에 대한 집계 투표권
governance.getVoterPowerproposalId (필수), voter (필수), chainId?제안에 대한 단일 유권자 상태 (hasVoted, weight, reason)
governance.getVoterVotesGlobalproposalId (필수), voter (필수)제안에 대한 유권자의 체인 간 투표
governance.listProposalVotesGlobalproposalId (필수), grouped?, page?, limit?제안에 대한 모든 유권자 (체인 간)
governance.getUserVoteHistoryaddress (필수), page?, limit?모든 제안에 걸친 사용자의 전체 투표 기록
governance.getUserProposalsaddress (필수), page?, limit?주소가 제출한 제안
governance.getApprovedProposerschainId?허용된 제안자 (200K AWP 임계값 우회)
governance.isApprovedProposeraddress (필수), chainId?주소가 승인된 제안자인지 확인
governance.getStats없음DAO 대시보드: 총 제안 수, 유권자, 통과율, 상태 분류
governance.getTreasury없음Treasury 컨트랙트 주소 반환

중요: 사용자에게 현재 수행 중인 작업을 항상 표시하세요. 모든 쿼리 결과, 모든 트랜잭션, 모든 이벤트를 명확하게 출력하세요. API 호출을 조용히 실행하지 마세요.

치명적: 등록은 무료이며 대부분의 worknet은 스테이킹이 전혀 필요하지 않습니다. 사용자에게 시작하기 위해 AWP 토큰이나 스테이킹이 필요하다고 알리지 마세요. 일반적인 흐름은 다음과 같습니다: 등록 (가스리스, 무료) → min_stake=0인 worknet 선택 → 즉시 수익 창출 시작. AWP 스테이킹/입금은 명시적으로 요구하는 worknet (min_stake > 0)에만 필요하며, 시작하는 데 완전히 선택 사항입니다.

컨트랙트 주소 (4개 체인 모두 동일)

AWPToken:             0x0000A1050AcF9DEA8af9c2E74f0D7CF43f1000A1
AWPRegistry:          0x0000F34Ed3594F54faABbCb2Ec45738DDD1c001A
AWPEmission:          0x3C9cB73f8B81083882c5308Cce4F31f93600EaA9
AWPAllocator:         0x0000D6BB5e040E35081b3AaF59DD71b21C9800AA
veAWP:                0x0000b534C63D78212f1BDCc315165852793A00A8
AWPWorkNet:           0x00000bfbdEf8533E5F3228c9C846522D906100A7
LPManager (proxy):    0x00001961b9AcCD86b72DE19Be24FaD6f7c5b00A2
WorknetTokenFactory:  0x00000a82b06Ea5b5BdD6003fbfb9602FA531CAFE
Treasury:             0x82562023a053025F3201785160CaE6051efD759e
VeAWPHelper:          0x0000561EDE5C1Ba0b81cE585964050bEAE730001
AWPDAO:               0x00006879f79f3Da189b5D0fF6e58ad0127Cc0DA0
Guardian (Safe 3/5):  0x000002bEfa6A1C99A710862Feb6dB50525dF00A3

WorknetManager 기본 구현은 체인마다 다릅니다 (DEX별). 체인별 주소는 references/commands-worknet.md를 참조하세요. AWPRegistry.defaultWorknetManagerImpl()을 통해 온체인에서 조회하세요.

지원 체인: Base (8453), Ethereum (1), Arbitrum (42161), BSC (56). 모든 핵심 프로토콜 주소는 4개 체인 모두에서 동일합니다.

스킬 로드 시

새 세션의 첫 번째 상호작용에서 사용자 요청을 처리하기 전에 다음 단계를 실행하세요. 환영 배너는 사용자에게 AWP 스킬이 활성화되었음을 확인시켜 줍니다. 배너 후 동일한 응답에서 사용자의 실제 작업을 진행하세요.

1단계 — 환영 화면 (새 세션의 첫 번째 상호작용):

다음 배너를 출력한 다음 나머지 설정 단계와 사용자 요청을 계속 진행하세요.

╭──────────────╮
│              │
│   >     <    │
│      ‿       │
│              │
╰──────────────╯

agent · work · protocol

welcome to awp.

one protocol. infinite jobs. nonstop earnings.

── quick start ──────────────────
"awp start"        → register + join (free, no AWP needed)
"awp balance"      → staking overview
"awp worknets"     → browse active worknets
"awp watch"        → real-time monitor
"awp help"         → all commands
──────────────────────────────────

no AWP tokens needed to start.
register for free → pick a worknet → start earning.

배너 후 즉시 계속

…

관련 스킬