attestation-sdk
demo
on chain
import {
SignProtocolClient,
SpMode,
EvmChains,
delegateSignAttestation,
delegateSignRevokeAttestation,
delegateSignSchema,
} from '@ethsign/sp-sdk';
import { privateKeyToAccount } from 'viem/accounts';
const privateKey = '0xabc';
const client = new SignProtocolClient(SpMode.OnChain, {
chain: EvmChains.sepolia,
account: privateKeyToAccount(privateKey),
});
const createSchemaRes = await client.createSchema({
name: 'xxx',
data: [{ name: 'name', type: 'string' }],
});
const delegationPrivateKey = '0xaaaaa';
const info = await delegateSignSchema(
{
name: 'xxx',
data: [{ name: 'name', type: 'string' }],
},
{
chain: EvmChains.sepolia,
delegationAccount: privateKeyToAccount(delegationPrivateKey),
}
);
const delegateCreateSchemaRes = await client.createSchema(info.schema, {
delegationSignature: info.delegationSignature,
});
const createAttestationRes = await client.createAttestation({
schemaId: '0x3',
data: { name: 'a' },
indexingValue: 'xxx',
});
const delegationPrivateKey = '0xaaaaa';
const info = await delegateSignAttestation(
{
schemaId: '0x1',
data: { name: 'a' },
indexingValue: 'xxx',
},
{
chain: EvmChains.sepolia,
delegationAccount: privateKeyToAccount(delegationPrivateKey),
}
);
const delegationCreateAttestationRes = await client.createAttestation(
info.attestation,
{
delegationSignature: info.delegationSignature,
}
);
const revokeAttestationRes = await client.revokeAttestation('0x3', {
reason: 'test',
});
const delegationPrivateKey = '0xaaaaa';
const info = await delegateSignRevokeAttestation(attestationId, {
chain: EvmChains.sepolia,
reason: 'test',
delegationAccount: privateKeyToAccount(delegationPrivateKey),
});
const delegationRevokeAttestationRes = await client.revokeAttestation(
info.attestationId,
{
reason: info.reason,
delegationSignature: info.delegationSignature,
}
);
off chain
import {
SignProtocolClient,
SpMode,
EvmChains,
OffChainSignType,
} from '@ethsign/sp-sdk';
import { privateKeyToAccount } from 'viem/accounts';
const privateKey = '0xabc';
const client = new SignProtocolClient(SpMode.OffChain, {
signType: OffChainSignType.EvmEip712,
account: privateKeyToAccount(privateKey),
});
const schemaInfo = await client.createSchema({
name: 'xxx',
data: [{ name: 'name', type: 'string' }],
});
const attestationInfo = await client.createAttestation({
schemaId: 'xxxx',
data: { name: 'a' },
indexingValue: 'xxx',
});
const attestationId = 'xxx';
const revokeAttestationRes = await client.revokeAttestation(attestationId, {
reason: 'test',
});
index service
import { IndexService } from '@ethsign/sp-sdk';
async function getSchemaListFromIndexService() {
const indexService = new IndexService('testnet');
const res = await indexService.querySchemaList({ page: 1 });
}
async function getSchemaFromIndexService() {
const indexService = new IndexService('testnet');
const res = await indexService.querySchema('onchain_evm_80001_0x1');
}
async function getAttestationListFromIndexService() {
const indexService = new IndexService('testnet');
const res = await indexService.queryAttestationList({ page: 1 });
}
async function getAttestationFromIndexService() {
const indexService = new IndexService('testnet');
const res = await indexService.queryAttestation('onchain_evm_80001_0x1');
}
Changelog
0.3.27
- Added support for arbitrum sepolia
- remove polygon mumbai
0.3.24
- offchian mode support config wallet client
0.3.19
- support for index service
0.3.18
0.3.14
- Added support for sepolia
0.3.7
- Added support for base sepolia
0.3.4
0.3.2
- Added support for scroll sepolia
0.3.3
0.3.0
0.2.3
- Improved error handling.
- General optimization.
0.2.2
- Improved encoding for attestation data.
0.2.0
- Added support for delegate schema registration.
0.1.11
- Added support for ZetaChain mainnet.
0.1.10
- Added support for opBNB testnet.
0.1.9
- Added support for attestation revocation.
0.1.5
- Added support for delegate attestation.
0.0.1